Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5WebSocket+;Node.js实时通知系统_Html_Node.js_Facebook Graph Api_Notifications_Websocket - Fatal编程技术网

HTML5WebSocket+;Node.js实时通知系统

HTML5WebSocket+;Node.js实时通知系统,html,node.js,facebook-graph-api,notifications,websocket,Html,Node.js,Facebook Graph Api,Notifications,Websocket,在过去的几周里,我使用HTML5WebSocket和node.js以及socket.io构建了一个小型通知系统。 还有一些事情我还没有解决 我已经读到,使用node.js的实时通知应该是与长轮询等相比的最佳性能解决方案,因为它不阻塞I/o操作 现在假设我们必须通知该用户的朋友。比如“我买了一部新iphone”。如何教node.js实时通知特定用户1:n?直到知道我只有发送和接收消息1-1通信。 这意味着我必须先查看facebook api好友列表,找出哪个facebook\u id与哪个sock

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

我已经读到,使用node.js的实时通知应该是与长轮询等相比的最佳性能解决方案,因为它不阻塞I/o操作

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

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

目前,我将使用node.js的mongo db本机驱动程序,并使用服务器端javascript完成db操作。 我仍然需要实现facebooks javascript sdk来获得friendslist,但我在用户隐私设置方面会遇到问题。这难道不会破坏非阻塞I/O的所有优势吗

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


非常感谢。

你不应该去Facebook查看好友列表之类的。。 您应该缓存它们,我假设用户已登录,如果是,则解决方案 看起来很容易

  • 获取用户
  • 检查发件人是否是他的朋友
  • 检查收件人是否希望接收邮件
  • 顺便说一句,redis要快得多

    编辑: 如果您担心用户数据无法更新
    这就是为什么你不缓存你应该检查的原因。

    你不应该去Facebook查看好友列表等等。。 您应该缓存它们,我假设用户已登录,如果是,则解决方案 看起来很容易

  • 获取用户
  • 检查发件人是否是他的朋友
  • 检查收件人是否希望接收邮件
  • 顺便说一句,redis要快得多

    编辑: 如果您担心用户数据无法更新
    这就是为什么你不缓存你应该检查的原因。

    嗨,谢谢。我只是担心,我的缓存列表不是最新的。谢谢。我会看看的。嗨,谢谢。我只是担心,我的缓存列表不是最新的。谢谢,我会认真考虑使用ReISIS发布/订阅。让客户端订阅他们自己的频道或频道,然后当用户发送消息时,只需将其发布到目标用户/组。这听起来不错。我尝试一下。我会认真考虑使用ReISS发布/订阅。让客户端订阅他们自己的频道或频道,然后当用户发送消息时,只需将其发布到目标用户/组。这听起来不错。我试试看。