重新连接后套接字发射不起作用

时间:2019-10-27 18:09:43

标签: javascript socket.io

我正在使用Socket io在Web用户之间建立聊天。首次登录用户然后连接到服务器套接字时,使用socket.io('INPUT_MESSAGE',data)事件,将发送者电子邮件,接收者电子邮件和消息作为数据,我没有任何问题。然后,我使用接收者的电子邮件获取他的socketId,最后使用io.sockets.connected [socketId] .emit('OUTPUT_MESSAGE')事件将消息发送到相应的接收者。 到目前为止,我运行良好。但是,当我重置服务器并且当前连接的客户端再次连接时,“ OUTPUT_MESSAGE”事件不再起作用了...知道吗?

当新的客户端连接到套接字(名称是电子邮件客户端)时:

socket.on('SEND_NAME_TO_SERVER', name => { 
serverNames = [...serverNames, { socketId: socket.id, name }];
});

收到来自客户的新消息:

socket.on('INPUT_MESSAGE',  data =>{   
let userSocket ="";  
const { message, user, sender,} = data;

 .....Add the new message to database....

for (let i = 0; i < serverNames.length; i++){
if (serverNames[i].name === user){                        
userSocket=serverNames[i].socketId;                       
io.sockets.connected[userSocket].emit("OUTPUT_MESSAGE_toUSER", data); 
)};

0 个答案:

没有答案