【发布时间】:2012-10-23 08:30:47
【问题描述】:
在过去的几周里,我使用 HTML5 Websockets 和 node.js 和 socket.io 构建了一个小型通知系统。 还有一些事情我还没有解决。
我已经读到,由于非阻塞 i/o 操作,使用 node.js 的实时通知应该是最好的性能解决方案,而不是长轮询等。
现在假设我们必须通知这个用户的朋友。诸如“我买了一部新 iPhone”之类的东西。如何教 node.js 实时通知特定用户 1:n?直到知道我只有发送和接收消息 1-1 通信。 这意味着我必须先检查 facebook api 好友列表并找出哪个 facebook_id 以某种方式与哪个 socket_id 连接。然后检查用户的隐私设置,如果他想接收通知,然后发送并保存到数据库中。
所以对我来说,这似乎不是最有效的解决方案......
目前我会为 node.js 使用 mongo-db 本机驱动程序,并通过服务器端的 javascript 完成 db 操作。 我仍然需要实现 facebooks javascript sdk 来获取好友列表,但我会在用户隐私设置方面遇到麻烦。这不会破坏非阻塞 I/O 的所有优势吗?
您实际上是如何解决这个问题的。对我来说,这似乎很复杂。
非常感谢。
【问题讨论】:
-
我会认真考虑为此使用 redis 发布/订阅。让客户端订阅他们自己的
频道或 频道,然后当用户发送消息时,只需将其发布到目标用户/组。 -
这听起来不错。我试试看。
标签: html node.js facebook-graph-api notifications websocket