gpt4 book ai didi

javascript - Websocket 的正确方法

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

我正在构建一个应用程序,想知道使用 websockets 在应用程序中传递实时通知的正确方法是什么。

我的应用程序使用 Express、Socket IO 和 Mongodb。我使用 Passport JS 来验证用户身份以及名为 passportSocketIo 的东西将 Passport 和 Socket IO 连接在一起。

我想要的功能是共享通知。基本上,当某个组中有多个用户并且其中一个用户更新了与该组有关的内容时,我希望属于该组的所有用户都通过 Web 套接字接收通知。

我的主要问题是所有这些用户是否应该共享相同的 websocket 才能收到相同的通知? IE 如果有人连接到该组,那么我将组 websocket id 设置为他们的 websocket id,然后任何后续连接的人也会假定该 id,以便让每个人都在同一个套接字上

或者

每次用户与我的应用程序打开 websocket 连接时,我是否应该存储用户的 websocket id 并将其存储在 Mongo db 中,比如在组模型下,也许像这样:

activeSocketIds:['id1','id2', etc...]

每当组发生更改时,它都会查找该组中的 activeSocketIds 并对所有唯一 id 执行 ping 操作,这当然是通知。

也许这两种方法都不是正确的方法,但希望得到一些建议!

谢谢

最佳答案

由于您使用的是 SocketIO,因此您可以为您的组使用 SocketIO 的房间功能。

https://socket.io/docs/rooms-and-namespaces/

如果您使用 SocketIO 房间,当需要发出消息或通知时,您可以广播该通知,该通知将发送给连接到该房间的所有客户端。

如果您的用户属于多个群组,您还可以订阅多个房间!

关于javascript - Websocket 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48240933/

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