从服务器端到 Web 应用程序排队 events/notifications 的模式或库

Pattern or library to queue events/notifications from server side to web app

我有一个 Web 应用程序,它在后端有一系列事件正在发生,当前登录的用户应该知道这些事件。最初,当只有少数事件类型(如 getNewNotifications、getNewComments)时,我们可以对幕后发生的这些事件进行长时间轮询,但进行多次长时间轮询是对资源的巨大浪费,似乎是时候重新考虑一下了过程。

从大多数社交网络来看,它们似乎会长时间轮询新更新,这将 return 哈希数组。据推测,如果他们处理其中的每一个,前端或后端都会处理哈希并重定向进程以请求必要的功能。

这项技术只需要一个长轮询,但它需要后端有一个队列,以 post 新消息作为后端发生的事件,例如正在 post 编辑的评论或一些 activity 有助于排行榜的移动。

这就是我感到困惑的地方,我考虑过为每个用户设置一个 redis 队列,这需要在页面刷新、重新登录或用户再次激活时清除。为了记录活跃用户,我正在考虑拥有一组活跃用户的 Redis,如果链接的活跃用户对象过期,则必须清除这些用户。

我觉得这一定是现代网络应用程序中的一个常见问题,大量信息来回传递并轮询每项服务,这是一种真正的资源浪费,但我还没有看到任何例子(至少我可以看到相关性)。任何帮助将不胜感激。

将 PubSub 模式与 Redis 和 WebSockets 结合使用被许多流行的服务使用,http://blog.newsblur.com/post/20371256202/building-real-time-feed-updates-for-newsblur