Множественная подписка topi c - PullRequest
0 голосов
/ 18 марта 2020

Этот код, который я написал для нескольких подключений через веб-сокет, имеет некоторую проблему, когда мне нужна помощь, т.е. когда я подписываюсь на одну группу (topi c 1) и через некоторое время пытаюсь подписаться на другую группу (topi c 2 ) тогда предыдущий topi c (topi c 1), который был подписан, будет отключен, помогите мне с этим

    var WebSocket = require('ws');
    var node = this;
    let urls =msg.payload.urls;
    let connections = {};
    for(let k in connections) {
        connections[k].close();
        connections[k].reconnect=false
        console.log('connection closed:::');
            }

    for(let i=0;i<urls.length;i++){
        console.log(':::::::for loop:::::::')
        console.log('url----'+urls[i])
        function connect(urlIndex) {
                let ws;
                if(urlIndex!=undefined||urlIndex!=null){
                    ws = new WebSocket(urls[urlIndex]);
                }
                else{
                    ws = new WebSocket(urls[i]);    
                }
                ws.index=i;
                ws.reconnect=true;
                ws.onopen = function() {

                };

              ws.onmessage = function(e) {
                console.log('Message:', e.data);
                 msg.payload=e.data;
                 node.send(msg);
              };

              ws.onclose = function(e) {
                console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason);
                setTimeout(function() {
                    console.log("onclose ----ws reconnect"+ws.reconnect)
                    if(ws.reconnect){
                        console.log("inside if reconnect")
                    connect(ws.index);
                    }
                }, 30000);
              };

              ws.onerror = function(err) {
                console.error('Socket encountered error: ', err.message, 'Closing socket');
                ws.close();
              };
            connections[urls[i]]=ws
            }
            connect();

            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...