2016-12-16 48 views
0

在我的客户端节点码客户端的事件,我有这样的事情:当节点服务器联机

var socket = io('//localhost:1337'); 

$(function() { 
    if (!socket.connected) 
     NodeOfflineError(); 
}); 

现在,让我们说我有一个NodeBackOnlineAlert()功能与NodeOfflineError()功能走,我怎么知道什么时候打电话?

是否存在用于检查服务器是否存活的轮询侦听器?

回答

1

您可以运行的功能,并具有一种功能,当插座断开重新连接监听器:

socket.on("disconnect", function() { 
        NodeOfflineError(); 
        socket.socket.reconnect(); 

       }); 

socket.on("connect", function() { 
       NodeOnlineAlert() 
       }); 

socket.on("reconnect", function() { 
       NodeBackOnlineAlert() 
       }); 
1

您可以使用套接字IO的监听器事件(假设你使用套接字IO)

const socket = io('//localhost:1337') 
$(() => { 
    socket.on('connected', socket => { 
     console.log('connected!') 

     socket.on('disconnect',() => { 
      NodeOfflineError() 
     }) 
    }) 

    socket.on('reconnect',() => { 
     NodeBackOnlineAlert() 
    }) 
}) 

http://socket.io/docs/检查部分地方说,“发送和接收事件”也http://socket.io/docs/client-api/ :)

0

你可以使用服务器发送事件:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events。 MDN指南应该有你需要的一切来实现它们(它们非常简单!)。这个库可能被证明为您的服务器有用:https://www.npmjs.com/package/sse

+0

不回答问题。如果不是不可能可靠地使用SSE来传递关于节点连接的实时信息,则这是非常不切实际的。 – SISYN

+0

@DanL其实sse非常可靠。 – Darkrum