在localhost上创建两个单独的websocket连接以进行发送和接收

时间:2014-04-22 08:56:18

标签: websocket localhost

我是websockets的新手。

预计使用某个端口(例如:8000)在send websocket连接上发送数据(任何数据),localhost应使用不同的websocket连接通过不同的端口将相同的数据回显给浏览器(例如:9000) )。

我理解websocket支持单个连接上的全双工通信,但以上是要实现的设计。

问题1)上述设计是否可行? 问题2)如果是,如何创建两个websocket连接(一个发送,一个接收)到一个localhost websocket服务器?

1 个答案:

答案 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;
}

(怎么样,这段代码没有经过测试,这只是一个想法)