0

在过去的几周里,我使用HTML5 Websockets 和 node.js 和 socket.io 构建了一个小型通知系统。 还有一些事情我还没有解决。

我已经读过使用 node.js 的实时通知应该是最好的性能解决方案,而不是长轮询等,因为非阻塞 i/o 操作。

现在假设我们必须通知这个用户的朋友。诸如“我买了一部新 iPhone”之类的东西。如何教 node.js 实时通知特定用户 1:n?直到知道我只有发送和接收消息 1-1 通信。这意味着我必须先检查 facebook api 好友列表并找出哪个 facebook_id 以某种方式与哪个 socket_id 连接。然后检查用户的隐私设置,如果他想接收通知,然后发送并保存到数据库中。

所以对我来说,这似乎不是最有效的解决方案......

目前我会为 node.js 使用 mongo-db 本机驱动程序,并通过服务器端的 javascript 完成数据库操作。我仍然需要实现 facebooks javascript sdk 来获取好友列表,但我会遇到用户隐私设置的问题。这不会破坏非阻塞 I/O 的所有优点吗?

你如何实际解决这个问题。对我来说,这似乎很复杂。

非常感谢。

4

1 回答 1

3

你不应该去 Facebook 检查朋友列表等等。你应该缓存它们,我假设用户已经登录,如果这样,解决方案似乎很容易。

  1. 获取用户。
  2. 检查发件人是否是他的朋友
  3. 检查收件人是否想收到邮件。

顺便说一句,redis 要快得多。

编辑:如果您担心用户数据不会被更新,这就是您不缓存的原因,您应该检查Real-time Updates

于 2012-09-03T20:51:57.147 回答