关于js创建sign的进一步思路

关于js创建sign的进一步思路
对于代理使用js创建sign,大家已经熟悉了,现在我们能不能把这种js内部函数调用,变成外部可以访问的http请求呢?抱着这个目的,我开始了对js中webscoekt的使用研究——因为websocket是允许在html中跨域访问的。
1、js请求websocket
ws的请求地址是这样的:
ws://echo.websocket.org/
它的回调event是这样的:

        websocket = new WebSocket(wsUri);
        websocket.onopen = function(evt) {
            onOpen(evt)
        };
        websocket.onclose = function(evt) {
            onClose(evt)
        };
        websocket.onmessage = function(evt) {
            onMessage(evt)
        };
        websocket.onerror = function(evt) {
            onError(evt)
        };

websocket使用的是TCP长链接,即能收message,也能发送message,这样就只需要起一个websocket的server,让server给js发送请求sign的指令即可,应答由server异步接收。
2、WebSocket Server
我打算用另一个websocket client去链接server,与js端的websocket client通讯,server把命令指令进行中转即可;也可以让server兼做http server,省略websocket server转发client请求。
请求过程如下:
websocket client ==>> websocket server ==>> websocket – js client
数据返回是倒着来:
websocket client <<== websocket server <<== websocket – js client
于是在client中,提交sign请求给server,server转发请求给js client;
js client计算sign,异步得到结果后,传回给server;
server再将js client返还的数据包,转发给client,完成一次Request&Response
3、Http Server
虽然websocket client已经够用了,但是需要使用websocket对于html页面也是一种负担和技术门槛,而且数据协议需要定义好,才能在websocket server中转发请求与应答。加上一层http server是为了简化html使用,还能形成API,加一层Ngnix后,可以扩大并发,瓶颈目前在js client,毕竟手机或者模拟器跑app上的js有点慢。融合http server到websocket client中即可,这个就不多讲了,目前还在研究中。

附录:
1、websocket server使用autobahn
2、http server使用aiohttp