Javascript socket.io客户端-如果没有连接或服务器关闭,则不会触发发出回调

Javascript socket.io客户端-如果没有连接或服务器关闭,则不会触发发出回调,javascript,sockets,socket.io,client,Javascript,Sockets,Socket.io,Client,我试图在客户端添加一些验证,以确保消息已正确发送到服务器 如果服务器宕机,回调函数不会启动,我无法告诉我的客户消息是否正确传递。如果我的客户端(移动客户端)失去信号,也会发生同样的情况 如何处理客户端中的连接错误 谢谢你的帮助 socket.emit('send', JSON.stringify(msg), function (res) { if(res) { $messages.unshift(msg); } else { $scop

我试图在客户端添加一些验证,以确保消息已正确发送到服务器

如果服务器宕机,回调函数不会启动,我无法告诉我的客户消息是否正确传递。如果我的客户端(移动客户端)失去信号,也会发生同样的情况

如何处理客户端中的连接错误

谢谢你的帮助

socket.emit('send', JSON.stringify(msg), function (res) {
    if(res)  { 
        $messages.unshift(msg); 
    }
    else { 
      $scope.$emit('triggerError',  { message: 'Unable to send your message.', temp: true });
    }
}); 

您是否尝试过使用socket.on('disconnect',…)回调?根据文档,这是检测客户端已断开连接的方法。由于socket.io使用web套接字,并且web套接字建立活动连接,因此每当连接丢失时,套接字将立即断开连接并触发此回调


我在我的项目中使用过它,而且它很有效。我从未尝试过在客户端使用它,但可能它也能起作用。

有几个事件可用于此目的。 您可以在“错误”上绑定-如果发生错误,您将触发此事件。 您可以在“断开连接”时绑定—您可以检测到与服务器的断开连接