Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在本地主机上为发送和接收创建两个单独的websocket连接_Websocket_Localhost - Fatal编程技术网

在本地主机上为发送和接收创建两个单独的websocket连接

在本地主机上为发送和接收创建两个单独的websocket连接,websocket,localhost,Websocket,Localhost,我不熟悉WebSocket 它应该使用某个端口(例如:8000)在send websocket连接上发送数据(任何数据),本地主机应该使用不同的websocket连接通过不同的端口(例如:9000)将相同的数据回显到浏览器 我知道websocket支持在单个连接上进行全双工通信,但以上是要实现的设计 问题1)上述设计是否可行? 问题2)如果是,如何创建到单个本地主机websocket服务器的两个websocket连接(一个发送,一个接收?1)是 2) 创建两个分离的WebSocket。不过,它们

我不熟悉WebSocket

它应该使用某个端口(例如:8000)在send websocket连接上发送数据(任何数据),本地主机应该使用不同的websocket连接通过不同的端口(例如:9000)将相同的数据回显到浏览器

我知道websocket支持在单个连接上进行全双工通信,但以上是要实现的设计

问题1)上述设计是否可行? 问题2)如果是,如何创建到单个本地主机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;
}

(Whatch out,这段代码没有经过测试,它只是一个想法)

这个想法很有用。服务器端的实现如何。我认为本地主机服务器应该在两个端口侦听。我使用nodejs+socket.io代码进行服务器端实现。我从未使用过nodejs,但您应该确保可以通过cookie等方式将两个连接配对。只是好奇,为什么要保留两个分开的连接?这一点好处都没有,只是复杂而已。这是架构师根据项目另一部分(固件)的设计做出的设计决定。我要做的就是实现:(…当我有10个声誉时,我会投票:)