Node.js 如何在redis数据库上存储webSocket客户端obj

Node.js 如何在redis数据库上存储webSocket客户端obj,node.js,websocket,redis,ws,Node.js,Websocket,Redis,Ws,我想在服务器重新启动时预先列出客户端连接。看起来最快的方法就是使用redis。我真的不确定我该怎么做,因为redis不接受对象(即ws客户端)。如何将ws-client存储到redis上 const wss = new WebSocket.Server({ noServer: true }); server.on('upgrade', function(request, socket, head) { console.log(request); wss.handleUpgrad

我想在服务器重新启动时预先列出客户端连接。看起来最快的方法就是使用redis。我真的不确定我该怎么做,因为redis不接受对象(即ws客户端)。如何将ws-client存储到redis上

const wss = new WebSocket.Server({ noServer: true });
server.on('upgrade', function(request, socket, head) {
    console.log(request);

    wss.handleUpgrade(request, socket, head, function done(ws) {
        // Store ws on redis db
        ws.emit('connection', ws, request);
    });
});

另外,我不能使用socket.io。我只能在服务器重新启动时使用webSocket

,所有连接的客户端都将断开连接。重新启动后,每个连接的客户端将由一个新的套接字表示。您可以通过ID或登录名/密码识别客户端。@Lemix如何根据服务器的ID重新建立连接?当客户端断开连接时,套接字对象将被破坏。客户端必须在重新连接到服务器后发送身份验证数据(ID、令牌、cookies等)。在服务器上接收到身份验证数据后,您可以将套接字对象与真实用户关联。@Lemix因此,在客户端,我会每隔5秒左右尝试重新连接一次超时。重新连接到服务器后,它将根据id启动新的套接字连接。正确吗?我假设实际的ws-client应该存储在node.js中的一个对象中。如果是这样的话,那么在redis中存储id有什么意义呢?