Socket.io在socket.disconnect()上触发两次断开事件。

时间:2018-07-21 19:25:26

标签: node.js socket.io

我正在连接到外部套接字服务器,问题是几个小时后套接字连接断开,即使被触发,也要断开连接,但不会发生重新连接。

尝试调试时(我添加了超时,该超时会断开套接字客户端的连接),两次触发断开连接事件。

app > DISCONNECT io client disconnect                                                               
app > DISCONNECT forced close                                                                         
app > Socket 9JWV1qYbbWPIZJ_fABZk connected

尽管在这种情况下,即使事件被两次触发,它也可以重新连接,但是,即使自然触发了断开连接,它也会被触发一次,并且不会按原样重新连接。日志中没有错误,应用程序只是不推送任何新消息。

此套接字代码:

var socket = require('socket.io-client')('wss://streamer.cryptocompare.com',{
    "force new connection": false
}); 

var subscription = ['2~Bitfinex~BTC~USD','2~Kraken~LTC~USD','2~Bitfinex~ETH~USD','2~Bitfinex~ETH~BTC'];  

socket.on('error', function(){
  socket.open();
});   

socket.on('disconnect', function(msg) {
  console.log("DISCONNECT", msg +'...'+socket.id);
  socket.open();
});        

socket.on('reconnect_failed', function() {
  socket.open();
});      

socket.on('connect', function() {
    console.log("Socket %s connected", socket.id)
    socket.emit('SubAdd', { subs: subscription });
});  

setTimeout(function(){
    socket.disconnect(); 
},10000);    

欢迎提出任何建议,因为目前尚不确定还有什么尝试。 谢谢

编辑:

当我随机断开连接时,断开连接事件会返回此消息

DISCONNECT transport close...

0 个答案:

没有答案