正确捕获错误 Socket.io
Correctly capture an error Socket.io
我正在建立一个简单的聊天。我正在使用 websocket lib socket.io 因为它有一个很棒的服务器/客户端实现。
我的客户端在移动设备上,因此网络连接非常不稳定。我已经读过一些关于确认函数的信息,这些函数可以通过发出传递,以便在套接字"事务"完成后执行代码。但是在此基础上构建错误处理将非常丑陋。
我还阅读了有关捕获错误的.on('error'实现)的信息。
这里的问题是:如何区分不成功的发送消息 (.emit) 和暂时丢失的套接字连接。我不在乎失去套接字连接,因为我将其设置为在丢失后重新连接。
我希望我的情况清楚了。提前谢谢。
编辑:
我在客户端寻找的是这样的东西:
socket.on('error', function(data){
alert(data.emitData.msg+' could not be sent: '+data.emitID);
});
与此同时,我将开始自己仔细研究 API
消息确认在 socket.io 文档中进行了介绍。 以下是该文档的相关部分:
有时,您可能希望在客户端确认时收到回调 消息接收。
为此,只需传递一个函数作为 .send 的最后一个参数或 。发出。更重要的是,当您使用 .emit 时,确认由 您,这意味着您还可以传递数据:
服务器(应用程序.js)
var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.on('ferret', function (name, fn) { fn('woot'); }); });
客户端(索引.html)
<script> var socket = io(); // TIP: io() with no args does auto-discovery socket.on('connect', function () { // TIP: you can avoid listening on `connect` and listen on events directly too! socket.emit('ferret', 'tobi', function (data) { console.log(data); // data will be 'woot' }); }); </script>
以及此处显示的另一个示例:自定义事件的确认 socket.io
相关文章:
- 如何使用Socket.io将命令从客户端发送到服务器
- Socket.IO未定义变量
- Socket.io on Mozilla Rhino
- socket.io发射三次
- AngularJS$q承诺使用socket.io
- 如何知道使用socket.io订阅/取消订阅频道
- 通过socket.io发射给特定的人
- 通过socket.io从浏览器流式传输视频
- 通过node.js和socket.io向特定用户发送数据
- 如何使用socket.io在meanjs项目中配置jshint
- 如何使用Socket.io和Node.js开发大型聊天应用程序
- RangeError nodejs socket.io
- 通过node.js和socket.io在两个用户之间发送消息
- 使用socket.io更新express实时视图
- socket.io cookie解析握手错误
- 如何在同一端口上使用ExpressJS和Socket.io
- 使用cordova快速nodejs socket.io
- 通过socket.io与heroku应用程序进行通信
- Socket.io客户端在使用名称空间时忽略端口[Bug?]
- Node.js-socket.io-对io.sockets的引用突然未定义