Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在disconnect事件中重新连接套接字大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在使用相同的socket.id触发disconnect事件后重新连接套接字这里是我的套接字配置

var http = require('http').Server(app);
var io = require('socket.io')(http);
var connect_clients = [] //here would be the list of socket.id of connected users
http.listen(3000,function () {
    console.log('listening on *:3000');
});

因此,在断开连接事件时,我想尽可能使用相同的socket.id重新连接断开连接的用户

socket.on('disconnect',function(){
var disconnect_id = socket.id; //i want reconnect the users here
});

解决方法

认情况下,Socket.IO没有用于重新连接的服务器端逻辑.这意味着每次客户端想要连接时,都会创建一个新的套接字对象,因此它有一个新的id.由您来实现重新连接.

为此,您需要一种为该用户存储内容方法.如果您有任何类型的身份验证(例如护照) – 使用socket.request,您将在升级发生之前触发初始http请求.因此,从那里,您可以存储所有类型的cookie和数据.

如果您不想在cookie中存储任何内容,最简单的方法是在连接时发回有关他自己的客户特定信息.然后,当用户尝试重新连接时,再次发送此信息.就像是:

var client2socket = {};
io.on('connect',function(socket) {
    var uid = Math.random(); // some really unique id :)
    client2socket[uid] = socket;

    socket.on('authenticate',function(userID) {
        delete client2socket[uid]; // remove the "new" socket
        client2socket[userID] = socket; // replace "old" socket
    });
});

请记住,这只是一个示例,您需要更好地实现一些东西:)也许将信息作为请求参数发送,或以其他方式存储 – 无论对您有用.

大佬总结

以上是大佬教程为你收集整理的node.js – 在disconnect事件中重新连接套接字全部内容,希望文章能够帮你解决node.js – 在disconnect事件中重新连接套接字所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。