2015-10-06 72 views
-1

我想在网站中实现基于websocket的推送通知。我已经在这里和谷歌上讨论过了,但我的问题有点不同。
我用例:
当用户B回复帖由用户A的注释,用户A将收到带有链接的文章/评论推送通知(这是一个类似SO)
我的研究:
在网络上,人们似乎同意(就可扩展性而言),限制websocket频道的总数会更好。这导致每个用户有1个频道(=每个频道只包含1个用户)。为什么?考虑一个用户可以参与10个或更多讨论的群聊,>这意味着每个用户有10个或更多的频道。
因此,每个用户1个频道是最好的解决方案(直到现在)。Websockets:所有用户的一个频道或每个用户的一个频道?

我打算用这束https://github.com/GeniusesOfSymfony/WebSocketBundle
在文档,有一个关于如何将消息发送给特定的用户https://github.com/GeniusesOfSymfony/WebSocketBundle/blob/master/Resources/docs/SessionSetup.md页面。通过此方法,您只能向所有订阅同一频道的用户之间的1位用户发送消息。您可以通过将用户的用户名传递给该函数来完成此操作。

这将开创一种新的可能性:创建只有1个大通道,并且所有登录的用户都订阅它INSTEAD创建N个通道,其中N是已认证用户的数量。
换句话说,哪个更好:1个拥有1000个用户的通道或1000个拥有1个用户的通道?

回答

1

我建议你使用发布/订阅框架,并依靠该框架的实现进行扩展。你似乎正在解决之前已经解决了很多次的问题。搜索ActiveMQ发布/订阅,Kaazing JMS,Kaazing AMQP,Pusher,IBM MQTT/WS等。

+0

这并没有提供问题的答案。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://stackoverflow.com/help/whats-reputation),你会能够[评论任何帖子](http://stackoverflow.com/help/privileges/comment)。 - [来自评论](/ review/low-quality-posts/11132290) –

+0

只是好奇Ronak。为什么它不回答这个问题?它解决了海报的问题,对吗?伊戈尔正在走下一条需要耗费大量精力和不必要的时间的道路。使用pub/sub框架将解决他的问题,并允许他在应用程序上而不是管道上工作。 – FrankG

相关问题