将事件发射器连接到socket.connected



我目前正在编写一个电子应用程序,在主进程中,我想通过websockets与服务器通信。

我的主进程代码库的一部分取决于用户的套接字连接状态。我需要socket.io-client

const socket = require('socket.io-client')(host);

使我能够访问变量socket.connected,根据是否建立到服务器的连接,它是truefalse

因此,我想要的是将事件发射器附加到该变量。我已经使它与轮询工作

var events = require('events').EventEmitter;
var event = new events();
// Emits successfully every 200ms 'Connection: true|false'
event.on('status', function(status){
  console.log('Connection: ', status);
});
setInterval(function() {
  let status = socket.connected;
  event.emit('status', status);
}, 200);

,但想知道这是否真的是实现它的方式。对我来说,在nodejs这样的异步框架中求助于轮询似乎很奇怪。另一方面,我找不到其他方法来实现。最好的情况是以某种方式将事件发射器直接附加到socket.connected,但无法找到如何做到这一点。有谁能给我一个更好的实施方法吗?

谢谢

您可以通过connect事件获得客户端连接完成的通知:

socket.on('connect', function() {
    // client socket is now connected to the server
});
socket.on('disconnect', function() {
    // client socket is now disconnected from the server
});

客户端事件文档在这里:http://socket.io/docs/client-api/#manager(url:string,-opts:object)。文档中还有其他事件,如果你还想看到其他事情,比如重新连接。

相关内容

  • 没有找到相关文章

最新更新