将自定义对象存储在Node.js的WebSocket中

amrnrhlw  于 2022-11-11  发布在  Node.js
关注(0)|答案(1)|浏览(120)

我使用的是WebSocketServer。当一个新客户端连接时,我需要将该客户端的数据存储为每个客户端的自定义对象,并且我希望能够将其存储在WebSocket中,以便当服务器从该客户端接收到新消息时,我可以快速地从WebSocket本身访问我的自定义对象。有没有什么方法可以做到这一点,或者我只需要为我所有的对象创建一个Map,然后每次根据对象的ID从WebSocket中查找对象?谢谢

um6iljoc

um6iljoc1#

Map的想法将用于查找每个连接的数据,但是也没有理由不能将您自己的自定义属性添加到WebSocket对象中。

wss.on('connection', socket => {
     socket.userInfo = {someProperty: 'someValue'};

     socket.on('message', data => {
         console.log(socket.userInfo);
     });
});

然后,只要您在socket对象上收到消息,.userInfo属性就可用。
请记住,这些信息是暂时的,并且只对socket对象的生存期有效。(例如在更改网页时),这将生成一个新的套接字对象,该对象将不具有以前的.userInfo属性。因此,如果该信息需要在一个连接的生存期之后保持更长时间,您将不得不将其存储在其他地方并通过某些持久用户属性(而不仅仅是套接字对象)对其进行索引。

相关问题