gpt4 book ai didi

javascript - 保存每个客户端的 socket.io 数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:33 24 4
gpt4 key购买 nike

如何在每个客户端的 Socket.io 上保存数据?我已经考虑过这一点,但是当我阅读时,它可能是无效的:

io.on('connection', function(socket) {
console.log('socket connected');
var user = {};
//do stuff with user.

});

这是否正常工作,或者如果其他人加入,它会混合吗?如果它不能正常工作,那么哪种方法可以呢?

最佳答案

您所拥有的内容为每个单独的连接创建了一个闭包,因此它对于您想要保留在内存中的每个套接字数据都可以正常工作。然后,您需要将所有其他套接字通信放在同一个闭包中,以便它也可以访问数据。这样做的缺点是很难从外部获取数据(有时需要,但有时不需要)。

这样做的一个缺点是数据是暂时的,并且不会持续超过当前连接。如果出现任何类型的连接或客户端中断,并且所连接的 socket.io 被断开并重新连接,则将创建一个代表新连接的新闭包,并且当套接字关闭时,原始闭包将被垃圾收集。

有时实现此目的的另一种方法是使用 socket.id 作为共享数据结构的索引,或者如果您对 userID 使用任何类型的身份验证,则使用该 id 作为共享数据结构的索引。

关于javascript - 保存每个客户端的 socket.io 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28751855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com