0

我正在尝试监视两台计算机,并将它们的信息显示到网站上。在服务器中,我使用 javascript websocket,两台计算机将信息发送到服务器 IP。我想在同一页面监控两台计算机的状态和收到的 10 多条消息,交换信息以显示。

这是我的实际代码,但这样可以同时连接两个插座。我想用第一个 IP 打开一个套接字,接收 10 条消息,关闭连接并打开第二个 IP。收到 10 条 IP2 的消息后,关闭连接,打开第一个 IP 的套接字并重复该过程。

使用 node.js 更好吗?我从未使用过它,也不知道它的潜力。

有人可以帮助我吗?

对不起我糟糕的英语。

var IPs =  ['ws://localhost:9000','ws://localhost:8000']; 

while(1){
    IPs.forEach(function(IPactual){
            var socket = new WebSocket(IPactual);
            console.log(socket.readyState);
            socket.onopen = function() {
                console.log('%c Connected to ' + socket.url, "color:orange ");
            }

            socket.onclose = function() {
                console.log('%c Disconnected from ' + socket.url, "color: red");
            }

            socket.onerror = function(e) {
                console.log('%c Ooops... ' + e, "color: red");
            }

            var messages= 0;
            socket.onmessage = function(e) {
                messages++;
                console.log(messages);

                // WRITE TO HTML THE INFORAMTION RECIVED

                if (messages==10){
                    socket.onclose = function () {}; 
                    socket.close()

                }
            }

    })
}
4

1 回答 1

0

感谢您的帮助,保持打开我控制它的套接字是这样的:

$(document).ready(function () {

    var n_messages_to_show = 10;
        var messages_control = 0;

        var socket = new WebSocket('ws://localhost:9000');

        socket.onopen = function() {
            console.log('%c Connected to ' + socket.url, "color:orange ");
        }

        socket.onclose = function() {
            console.log('%c Disconnected from ' + socket.url, "color: red");
        }

        socket.onerror = function(e) {
            console.log('%c Ooops... ' + e, "color: red");
        }

        var connections = 0;
        socket.onmessage = function(e) {
            if (messages_control<n_messages_to_show){
                console.log('%c Sending TAD1 monitor information ','background:lightgreen ; color: black');
                messages_control++;
                post_to_web(e);
            }
        }


        var socket2 = new WebSocket('ws://localhost:8000');

        socket2.onopen = function() {
            console.log('%c Connected to ' + socket2.url, "color:orange ");
        }

        socket2.onclose = function() {
            console.log('%c Disconnected from ' + socket2.url, "color: red");
        }

        socket2.onerror = function(e) {
            console.log('%c Ooops... ' + e, "color: red");
        }

        var connections = 0;
        socket2.onmessage = function(e) {
            if (messages_control>n_messages_to_show){
                console.log('%c Sending TAD2 monitor information ','background:lightgreen ; color: black');
                messages_control++;
                post_to_web(e);
            }
            if(messages_control==n_messages_to_show*2){
                messages_control=0;
            }
        }


    post_to_web = function(e){
         //############################################
         //              POST TO WEB
         //############################################
    }
});
于 2014-07-28T08:07:02.210 回答