【问题标题】:Creating two separate websocket connections for send and receive on localhost在 localhost 上为发送和接收创建两个单独的 websocket 连接
【发布时间】:2014-04-22 08:56:17
【问题描述】:

我是 websockets 的新手。

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

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

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

【问题讨论】:

    标签: websocket localhost


    【解决方案1】:

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

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

    【讨论】:

    • 这个想法很有用..服务器端的实现怎么样。我认为localhost服务器应该监听两个端口。我正在使用nodejs+socket.io代码进行服务器端实现。跨度>
    • 我从来没有使用过nodejs,但是你应该确保你可以通过例如a cookie来配对两个连接。
    • 只是好奇,为什么要保持两个独立的连接?这样做没有任何好处,只是并发症。
    • 这是架构师根据项目另一部分(固件)的设计做出的设计决定。我要做的就是实施:(..当我有 10 个时会投票声誉:)
    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    相关资源
    最近更新 更多