连接前Socket.IO断开连接触发

时间:2019-06-08 05:40:24

标签: node.js socket.io

我通过发送包含凭据的socket.io消息使客户在聊天中获得授权。

让我担心的是,有时在授权完成之前,Socket.IO客户端会触发断开连接事件。客户端发送身份验证消息并立即断开连接时,可能会发生这种情况。

由于身份验证消息触发了获取API的回调,因此它总是做得较慢,并且在触发“断开连接”事件后,因此该应用程序允许聊天的人,即使他们已经离开。

是否有办法确保最后一次触发“断开连接”事件?

 socket.on('authorize', data => {
    
    checkAuth()
    .then(()=> addTochat()) //this resolves after disconnect event is fired
    
 
 })
 
 
  socket.on('disconnect', data => {
  
  removeFromChat()
 
 })
 

1 个答案:

答案 0 :(得分:0)

您可以在接收disconnect事件之后设置一个标志,并在允许断开连接的用户聊天之前在身份验证回调中检查该标志。

通过这种方式,即使您的应用是之前触发的,它也会尊重该断开事件。