HTML5 Websocket + Node.js实时通知系统

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

我已经阅读了使用node.js的实时通知应该是最好的性能解决schemevs长轮询等,因为非阻塞I / O操作。

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

所以对我来说,这似乎不是最有效的解决scheme…

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

你怎么解决这个问题呢? 对我来说,这似乎很复杂。

非常感谢你。

你不应该去Facebook检查朋友列表等,你应该caching他们,我假设用户login,如果这样的解决scheme似乎很容易。

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

顺便说一句,redis是快很多。

编辑:如果你担心用户数据不会被更新,这就是为什么你不caching你应该检查实时更新 。