2010-07-31 61 views
3

我想要实现一种机制,它将提供一个RESTful API,允许客户使用服务器注册对某个主题的兴趣,并在注册兴趣后从服务器接收异步通知。在企业(消息传递)体系结构中,这被称为发布/订阅'模式'。服务器端推送的可扩展解决方案?

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

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

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

我在Linux上运行的Ubuntu 10.0.4

回答

2

如果你事先知道你”会有很多用户(人员/应用程序)想要在某个主题上进行通知,而另一方面,您将有几乎不同的主题考虑采用拉技术。

即使使用拉动,RSS,Atom也相当成功。原因是:不需要在订阅者的服务器上拥有管理员,检测谁不再感兴趣(客户端很长一段时间不在线)或有机制将所有数据发送给订阅者。 使用推送,你需要在服务器上做的很少,而客户端每次只能提取少量的数据。

无论如何,Pull的成本稍微高一点,而且价格便宜,同时也为您节省了很多CPU和软件维护费用,而这些费用相当昂贵。

0

我建议你看看STOMP协议,以及它的python客户端(我用的是stomp.py)。这应该满足您的所有需求。

+0

嗯,唯一的问题是,我想到的客户端(网络浏览器),不能运行python AFAIK(至少不是没有插件 - 这是一个完整的其他水壶)。 – morpheous 2010-08-03 16:48:02

+0

浏览器不需要运行python,例如它们可以运行一个javascript STOMP客户端(只要浏览器接受web套接字)。相同的服务器(它可以用任何其他语言实现)。 STOMP只是一个规范。 javascript STOMP客户端看起来很有趣。这里有一些有趣的网页:http://www.kaazing.org/confluence/display/Doc/JavaScript+STOMP+Client+How-To – marbdq 2010-08-04 15:31:28