套接字.Io:检查指定socket id的连接状态
Socket.io: check the status of a connection with the socket id
我有一个连接的套接字id。我可以得到该连接的状态,在另一个的函数处理程序内?
像这样:
io.sockets.on('connection', function(socket) {
/* having the socket id of *another* connection, I can
* check its status here.
*/
io.sockets[other_socket_id].status
}
有办法吗?
对于1.0以上的版本,请查看Karan Kapoor的答案。对于旧版本,您可以使用io.sockets.sockets[a_socket_id]
访问任何已连接的套接字,因此如果您在其上设置了状态变量,则io.sockets.sockets[a_socket_id].status
将工作。
首先你应该检查套接字是否真的存在,它也可以用来检查连接/断开状态。
if(io.sockets.sockets[a_socket_id]!=undefined){
console.log(io.sockets.sockets[a_socket_id]);
}else{
console.log("Socket not connected");
}
截至今天,2015年2月,这里列出的方法都不能在当前版本的Socket上工作。io(1.1.0)。所以在这个版本中,它是这样为我工作的:
var socketList = io.sockets.server.eio.clients;
if (socketList[user.socketid] === undefined){
io.sockets.server.eio.clients
是一个包含所有活动套接字id列表的数组。因此,使用if语句中的代码来检查特定的套接字ID是否在此列表中。
if (io.sockets.connected[socketID]) {
// do what you want
}
插座。io>= 1.0,如Riwels回答的,首先你应该检查套接字是否存在
if(io.sockets.connected[a_socket_id]!=undefined){
console.log(io.sockets.connected[a_socket_id].connected); //or disconected property
}else{
console.log("Socket not connected");
}
在较新的版本中,您可以检查socket.connected
属性。
var socket = io(myEndpoint)
console.log(socket.connected) // logs true or false
也可以设置timeout
setTimeout(function() {
if(! socket.connected) {
throw new Error('some error')
}
}, 5000)
检查套接字是否在5秒内连接。
相关文章:
- 如何在d3.js图库中基于nodes id连接边和节点
- Socket.IO socket.id 更改同一客户端而不重新连接
- AlloyUI图表生成器:按ID而不是名称连接节点
- 节点.JS Socket.IO 将数据包发送到特定连接 ID
- SignalR维护不同子页面之间的连接ID
- 在输入时重定向按javascript(但表单是硬连接到插件中的,所以必须使用输入类而不是ID)
- SignalR IUserIdProvider未为用户ID和连接ID映射调用
- 将jquery变量连接到字符串,以便添加id's转换为动态生成的输入字段
- 如何连接函数参数和输入 ID
- jquery/Javascript使用它来获取ID、名称和插入并连接字符串
- 套接字.Io:检查指定socket id的连接状态
- jQuery可排序连接列表-获取列表id和数据值的排序值
- 需要展开/折叠游戏摘要,并使用交换机连接两个id
- 如何在没有连接的情况下获得FB id
- 基于公共id连接两个js对象数组的功能方式
- 我需要将url与sharepoint列表tr id连接起来
- websocket使用会话id重新连接
- Phonegap 3.0 Facebook连接无效的应用程序id
- Trello API - 将卡与开发板连接,以根据开发板 ID 获取开发板名称
- jQuery:如何通过连接ID检索元素