socket.io 客户端 - 如果没有连接或服务器关闭,则不会触发发出回调
socket.io client - emit callback does not fire if no connection or server is down
我正在尝试添加一些验证客户端,以确保消息已正确发送到服务器。
如果服务器出现故障,回调函数不会触发,我无法告诉我的客户端消息是否正确传递。如果我的客户端(移动客户端)失去信号,也会发生同样的事情。
如何处理客户端中的连接错误?
感谢您的帮助。
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 套接字,并且 Web 套接字建立活动连接,因此每当连接丢失时,套接字都会立即断开连接并触发此回调。
我已经在我的项目中使用它并且它有效。我从未尝试过在客户端使用它,但可能它也可以工作。
为此有几个事件。您可以在"错误"上绑定 - 如果发生某些错误,您将触发此事件。您可以在"断开连接"时绑定 - 您可以检测与服务器断开连接。
相关文章:
- Google API 的客户端库不会执行回调
- node.js+MySQL;JSON结果-回调问题&没有响应客户端
- 客户端如何知道发射是否失败?socket.emit()有回调吗
- 需要将数据从NodeJS服务器发送回JQuery客户端
- 外部回调-然后如何回调到客户端
- socket.io 客户端 - 如果没有连接或服务器关闭,则不会触发发出回调
- 取消按钮自动回发 - 客户端单击实现的细节
- Meteor - 在客户端上的异步回调的 for 循环后运行代码
- Meteor.methods:从内部回调将数据返回给客户端
- 强制x客户端等待node.js中客户端y的回调的最佳实践
- Safari在服务器端的刷新/加载前不运行回调函数(调用客户端代码)
- 流星客户端异步模式 / 如何为订阅列表和回调实现 waitOn
- 客户端上的异步JavaScript函数(如何编写回调)
- 从客户端到服务器的SocketIO回调没有'不起作用(改为null对象)
- 在Ajax回调中打开电子邮件客户端.不能在iPhone上运行
- Php长脚本与客户端回调
- HTML5客户端的WCF回调
- php客户端的WCF回调服务
- 应用引擎通道API's Javascript客户端使用我的onError回调
- Node express react oauth在与react客户端应用程序的回调中授权后通过访问令牌