我是websocket的新手。
它应该使用某个端口(例如:8000)在send-websocket连接上发送数据(任何数据),本地主机应该通过不同的端口(例如9000)使用不同的websocket连接将相同的数据回显到浏览器。
我知道websocket支持单连接上的全双工通信,但以上是要实现的设计。
问题1)上述设计可能吗?问题2)如果是,如何创建到单个localhost websocket服务器的两个websocket连接(一个发送,一个接收)?
1)是。
2) 正在创建两个独立的websocket。不过,它们将是不同的对象。
您可以将两个对象混合在一个复合对象中,如下所示:
var compositeWebSocket = function(urlSend, urlReceive){
var me = {};
var wsSend = new WebSocket(urlSend);
var wsReceive = new WebSocket(urlReceive);
var open = 0;
wsSend.onopen = opening;
wsReceive.onopen = opening;
var opening = function(){
if(open == 2){
if(me.onopen)
me.onopen();
}
else
open++;
};
var closing = funcion(){
try{wsSend.close();}catch(){}
try{wsReceive.close();}catch(){}
if(me.onclose)
me.onclose();
}
me.send = wsSend.send;
wsReceive.onmessage = function(msg){
if(me.onmessage)
me.onmessage(msg);
}
return me;
}
(不管怎样,这段代码没有经过测试,它只是一个想法)