我是websockets的新手。
预计使用某个端口(例如:8000)在send websocket连接上发送数据(任何数据),localhost应使用不同的websocket连接通过不同的端口将相同的数据回显给浏览器(例如:9000) )。
我理解websocket支持单个连接上的全双工通信,但以上是要实现的设计。
问题1)上述设计是否可行? 问题2)如果是,如何创建两个websocket连接(一个发送,一个接收)到一个localhost websocket服务器?
答案 0 :(得分:1)
1)是的。
2)创建两个独立的websockets。但它们将是不同的对象。
您可以将这两个对象混合在一个复合对象中,如下所示:
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;
}
(怎么样,这段代码没有经过测试,这只是一个想法)