【问题标题】:A scalable solution for server side push?服务器端推送的可扩展解决方案?
【发布时间】:2011-03-23 14:52:38
【问题描述】:

我想实现一种机制,该机制将提供一个 RESTful API,允许客户端通过服务器注册对主题的兴趣,并在注册兴趣后从服务器接收异步通知。在企业(消息)架构中,这称为发布/订阅“模式”。

对于桌面应用程序,这很容易实现 - 但对于 Web 应用程序,这被证明更加困难。

是否有(最好是开源的)框架或库允许将发布/订阅模式应用于 Web 应用程序?

服务器端技术可能采用以下任何一种语言:C、C++、PHP、Python、Ruby。

我在 Linux Ubuntu 10.0.4 上运行

【问题讨论】:

    标签: php python linux server-push publish-subscribe


    【解决方案1】:

    看看 pubsubhubbub 协议:http://en.wikipedia.org/wiki/PubSubHubbub

    这里是项目的来源:http://code.google.com/p/pubsubhubbub/

    【讨论】:

    • 也好,我来这里问问。。本来想写一个和自己差不多的。感谢您的链接,为此 +1!
    【解决方案2】:

    如果您事先知道会有很多订阅者(人/应用程序)想要某个主题的通知,而另一方面,您将很少有不同的主题考虑使用拉取技术。

    RSS、Atom 虽然使用 pull 还是相当成功的。原因:不需要在订阅者的服务器上进行管理,以检测谁不再感兴趣(客户端长时间离线)或具有将所有数据发送给订阅者的机制。 使用推送,你只需要在服务器上做很少的事情,而客户端每次只会拉少量数据。

    Pull 花费的带宽稍微多一点,但无论如何都很便宜,但它可以为您节省大量的 CPU 和软件维护费用,这非常昂贵。

    【讨论】:

      【解决方案3】:

      我建议您查看STOMP 协议及其python 客户端(我使用stomp.py)。这应该可以满足您的所有需求。

      【讨论】:

      • 嗯,唯一的问题是我正在考虑的客户端(网络浏览器)无法运行 python AFAIK(至少没有插件 - 这是另一个鱼锅)。
      • 浏览器不需要运行python,例如可以运行javascript STOMP客户端(只要浏览器接受网络套接字)。服务器也一样(它可以用任何其他语言实现)。 STOMP 只是一个规范。 javascript STOMP 客户端看起来很有趣。这里有一些有趣的页面:kaazing.org/confluence/display/Doc/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 2012-06-17
      相关资源
      最近更新 更多