我正在使用 Socket.io,我想知道从客户端连接到服务器的状态。
像这样的东西:
socket.status // return true if connected, false otherwise
如果连接断开或由于任何原因断开连接,我需要此信息向用户提供视觉反馈。
您可以检查该socket.connected
属性:
var socket = io.connect();
console.log('check 1', socket.connected);
socket.on('connect', function() {
console.log('check 2', socket.connected);
});
它是动态更新的,如果连接丢失,它将被设置为false
直到客户端再次拿起连接。很容易检查setInterval
或类似的东西。
另一种解决方案是自己捕获disconnect
事件并跟踪状态。
您可以使用此功能检查连接是否丢失:-
var socket = io( /**connection**/ );
socket.on('disconnect', function(){
//Your Code Here
});
希望它会帮助你。
这些天, socket.on('connect', ...) 对我不起作用。我使用下面的代码在第一次连接时检查。
if (socket.connected)
console.log('socket.io is connected.')
并在重新连接时使用此代码。
socket.on('reconnect', ()=>{
//Your Code Here
});
自己跟踪连接状态。带布尔值。将其设置false
为声明时。使用各种事件(连接、断开连接、重新连接等)重新分配当前布尔值。注意:使用未记录的 API 功能(例如socket.connected
)不是一个好主意;该功能可能会在后续版本中被删除,而无需提及删除。
@robertklep 检查 socket.connected 的答案是正确的,除了重新连接事件,https: //socket.io/docs/client-api/#event-reconnect
正如文档所说,它是“在成功重新连接时触发”。但是当您检查时,socket.connected
它是错误的。
不确定这是错误还是故意的。