2

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

如果服务器出现故障,回调函数不会触发,并且我无法告诉我的客户端消息是否正确传递。如果我的客户端(移动客户端)失去信号,也会发生同样的事情。

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

谢谢你的帮助。

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 });
    }
}); 
4

2 回答 2

1

您是否尝试过使用 socket.on('disconnect', ...) 回调?根据socket.io文档,这是检测客户端已断开连接的方法。由于socket.io使用了web sockets,而web sockets建立了一个活跃的连接,所以每当连接丢失时,socket会立即断开,并触发这个回调。

我已经在我的项目中使用它并且它有效。我从未尝试在客户端使用它,但它可能也可以。

于 2013-11-10T22:23:35.407 回答
0

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

于 2013-11-10T22:34:52.757 回答