【问题标题】:message push system facebook style消息推送系统facebook风格
【发布时间】:2012-01-25 10:20:40
【问题描述】:

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

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

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

感谢解答

【问题讨论】:

    标签: javascript facebook push


    【解决方案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'。

    【讨论】:

      【解决方案2】:

      有多种技术可以从服务器“推送”到浏览器。见Wikipedia

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 2014-08-07
        • 1970-01-01
        相关资源
        最近更新 更多