【发布时间】:2015-10-06 10:48:05
【问题描述】:
我想在网站中实现基于 websocket 的推送通知。我已经在 SO 和 google 上搜索了这里,但我的问题有点不同。
我的用例:
当 userB 回复 userA 发表的评论时,userA 将收到一条推送通知,其中包含指向文章/评论的链接(类似于 SO)
我的研究:
在网络上,人们似乎同意(在可扩展性方面)最好限制 websocket 通道的总量。这导致每个用户有 1 个频道(= 每个频道将只包含 1 个用户)。为什么?考虑一个群聊,其中 1 个用户可以参与 10 个或更多讨论 --> 这意味着每个用户有 10 个或更多频道。
因此,每个用户 1 个频道是最好的解决方案(直到现在)。
我打算使用这个捆绑包https://github.com/GeniusesOfSymfony/WebSocketBundle
在文档中,有一个关于如何向特定用户https://github.com/GeniusesOfSymfony/WebSocketBundle/blob/master/Resources/docs/SessionSetup.md 发送消息的页面。此方法允许您仅向订阅同一频道的所有用户之间的 1 个用户发送消息。您可以通过将用户的用户名传递给函数来完成此操作。
这开启了一个新的可能性:只创建一个所有登录用户都订阅的大频道,而不是创建 N 个频道,其中 N 是经过身份验证的用户数。
换句话说,哪个更好:1 个频道有 1000 个订阅者或 1000 个频道有 1 个订阅者?
【问题讨论】:
标签: websocket