消息推送系统facebook风格



我在一个朋友mmo公会的社区网站工作,只是为了提高我的技能和学习新技术。我的想法是建立一个消息/通知/任何推送系统alâfacebook风格。这意味着,如果有人给你发了一条消息,董事会上出现了一个新帖子或类似的东西,你会收到一个小通知,就像脸书使用它一样(你会在页面顶部的用户栏中得到一个红色的小数字)。

现在我不知道用谷歌搜索什么。"推送系统"是正确的定义吗?我该怎么做?我还研究了不同的问题,并阅读了有关node.js和comet的内容。这些技术的概念对我来说很清楚(来自其他语言,如Java)

因此,您有一个(例如node.js)服务器,它将消息(如果可用)推送到客户端。我该如何处理对客户的这种推送?我需要一个像倾听者一样的人,是吗?

感谢回答

如果您有特定的后端技术,例如搜索"php"或"ruby"以查找托管或自托管实时技术,您会发现此实时web技术指南是一个很好的起点。

我该如何处理对客户的这种推送?我需要一个像倾听者一样的人,是吗?

所有这些技术经常使用的范例是PubSub。PubSub是通过不同的技术在客户端上以不同的方式实现的。

用于在客户端和服务器之间进行通信的技术在不同的解决方案中有所不同,但在很大程度上是朝着最佳方法WebSocket迈进的。然而,您选择的实时web技术所使用的库将从直接使用WebSockets中抽象出来。

我将演示如何使用Pusher JavaScript库订阅数据:

var pusher = new Pusher('YOUR_APP_KEY'); // connect
var channel = pusher.subscribe('my-channel');
channel.bind('my_event', function(eventData) {
  // handle event data
});

Pusher使用通道,这是一个常用的术语,但其他技术将其称为主题或主题。通道可用于过滤数据或特定于特定主题,例如"my_football_team",事件是进一步过滤数据的一种方式,例如"new_news_item"、"score_update"。

有各种技术可以将服务器"推送"到浏览器。请参阅维基百科。

对于您第一次尝试这样做的公会网站,可能最简单的方法是使用XMLHttpRequest定期轮询服务器,并在有新数据时更新页面内容。

一旦成功,您可以将其更改为连续的"长轮询",只有在有新数据时服务器才会回答,从而减少网络流量,使通知更加即时。

最新更新