我在一个朋友mmo协会的社区网站工作,只是为了提高我的技能和学习新技术。我的想法是构建一个facebook风格的消息/通知/任何推送系统。也就是说,如果有人给你发了一条消息,就会在版面上出现一个新的帖子,或者类似的东西,你会收到一个小通知,就像facebook使用它一样(你会在页面顶部的用户栏上看到一个红色的小数字)。
现在我不知道用谷歌搜索什么。“推送系统”是正确的定义吗?我怎么能做到呢?我还查看了不同的问题,并阅读了有关node.js和comet的内容。这些技术的概念对我来说很清楚(来自其他语言,如Java)
因此,您有(例如node.js)服务器,它将消息(如果可用)推送到客户端。如何处理客户端上的这种推送?我需要倾听者之类的东西,是吗?
感谢您的回答
发布于 2012-01-26 22:55:43
如果你有一个特定的后端技术,你会发现这个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”。
发布于 2012-01-25 19:03:03
有各种技术可以实现从服务器到浏览器的“推送”。参见Wikipedia。
对于第一次尝试这样做的行会网站,最简单的方法可能是使用XMLHttpRequest定期轮询服务器,并在有新数据时更新页面内容。
一旦有效,您可以将其更改为连续的“长轮询”,只有在有新数据时才由服务器应答,从而减少网络流量并使通知更即时。
https://stackoverflow.com/questions/9001005
复制相似问题