我正在尝试添加一些验证客户端,以确保消息已正确发送到服务器。
如果服务器出现故障,回调函数不会触发,我无法告诉我的客户消息是否已正确传递。如果我的客户端(移动客户端)失去信号,也会发生同样的事情。
如何处理客户端中的连接错误?
感谢您的帮助。
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文档,这是检测客户端已断开连接的方法。由于 socket.io 使用 web sockets,并且 web sockets 建立一个事件连接,每当连接丢失时,socket 立即断开连接并触发此回调。
我已经在我的项目中使用过它并且它有效。我从未尝试过在客户端使用它,但它可能也有效。
关于javascript - socket.io 客户端 - 如果没有连接或服务器关闭,则不会触发回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19895696/