一旦客户端断开连接并重新连接服务器在Socket.io和node.js?

我想实现一对一的聊天,我很困惑如何实现这一点。 我试图通过发送一个消息到每个套接字来实现这一目标,但是如果一个客户端断开连接,并且套接字ID更改它将无法发送在存储在数据库中的套接字ID上的消息。 有关如何实现这个的任何提示?

先谢谢你。

       

网上收集的解决方案 "一旦客户端断开连接并重新连接服务器在Socket.io和node.js?"

对于每一个新的会话,新的客户端套接字实例被创build,因此ID可能会改变,所以为了能够识别用户,你应该依靠一些user_id而不是套接字ID。例如,在新的会话时,你可以实现一些login逻辑像

io.on("connection", function(socket) { // Accept a login event with user's data socket.on("login", function(userid) { // store socket instance against userid in session store like redis. }); }); 

这样你就可以在每个连接上保存一个新的套接字实例。

注意:使用套接字你只能发送消息,如果接收者在线,如果你想离线消息function你可能想要检查其他消息传递经纪人,如rabbitmq

使用RabbitMQ构buildNodeJs聊天应用程序