消息推送系统facebook风格

时间:2012-01-25 10:20:41

标签: javascript facebook push

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

现在我不知道谷歌的用途。是一个“推动系统”这个正确的定义? 我怎么能这样做? 我还查看了不同的问题并阅读了有关node.js和comet的信息。 我清楚这些技术的概念(来自其他语言,如Java)

所以你有(例如node.js)服务器将一条消息(如果有的话)推送到客户端。我如何处理客户端的这种推动?我需要像听众一样的东西,是吗?

感谢您的回答

2 个答案:

答案 0 :(得分:1)

如果你有一个特定的后端技术,你会发现这个realtime web technology guide是一个很好的起点,例如:搜索“php”或“ruby”以查找托管或自托管的实时技术。

  

我如何处理客户端上的这种推动?   我需要像听众一样的东西,是吗?

所有这些技术经常使用的范例是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使用channels这是一个常用术语,但其他技术将这些称为主题或主题。频道可用于过滤数据或特定于特定主题,例如'my_football_team'和事件是一种进一步过滤数据的方法,例如'new_news_item','score_update'。

答案 1 :(得分:0)

有许多技术可以从服务器“推送”到浏览器。请参阅Wikipedia

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

一旦有效,您可以将其更改为连续的“长轮询”,只有在有新数据时才由服务器应答,从而减少网络流量并使通知更加即时。