我正在尝试在客户端套接字连接时发出一个事件。这是我的代码。
socket.on('connect', function () {
console.log('connect');
socket.emit('status.update', {
conversationId: conversationId,
userId: userId,
online: true
});
});
此代码也嵌套在$(document).ready(function(){})
这是服务器上的监听器:
socket.on('status.update', function(data){
io.to(data.userId).emit('update.status', { conversationId: data.conversationId, online: data.online });
});
这是应该发生的事情:
客户端(用户1):当socket连接时,发出事件。在这种情况下,它是'status.update',传递一些数据。
服务器:在status.update中发出' update.status'从数据中提取的用户
客户(用户2或收件人): on' update.status'用户1的在线状态在其聊天框中更新。
目前正在发生什么:
我正在使用2个独立的浏览器进行测试。 Chrome中的用户1和Firefox中的用户2(收件人)。我在firefox中打开控制台,我在socket.on('update.status')
监听器上使用断点进行测试。
当用户1连接并且控制台关闭时,控制台仍会记录“连接”。消息,但不发出事件。我知道这是因为断点不是在接收方触发的。
当用户1连接并且控制台处于打开状态时,连接'消息仍然记录在控制台中,事件在发出时触发,现在断点在接收方触发。
有谁知道为什么会这样?感谢。