Google App Engine 的 Pubsub
我正在尝试在Google App Engine上实现发布-订阅消息传递。我希望能够存储其他服务器的回调,然后在有新数据时将其发送给它们。
我查阅了很多资料,但似乎除了自己实现之外没有找到其他方法。我看到有个叫pubsubhubbub的东西:https://code.google.com/p/pubsubhubbub/wiki/DeveloperGettingStartedGuide,但我想能够存储查询参数。例如,Xmpp xep 60就包含了用额外数据(称为选项)来配置订阅的功能。
不过,App Engine中的XMPP服务似乎没有pubsub扩展。
管理我们自己的接收者列表是否是唯一的选择呢?这个问题在这里被提到过:https://groups.google.com/forum/#!topic/google-appengine/CaBcX0EWO00
App Engine似乎是针对设备实现了一些功能,比如:使用JavaScript的频道:https://developers.google.com/appengine/docs/python/channel/
还有针对设备的CloudBackendMessaging:https://developers.google.com/cloud/samples/mbs/pubsub_messaging
2 个回答
现在有一个Google Cloud Pub/Sub的有限预览版,这个东西随着时间的推移会变得越来越值得关注。
Google Cloud Pub/Sub的设计目的是为了在应用程序之间提供可靠的、多个对多个的、异步消息传递。发布者应用程序可以把消息发送到一个“主题”,而其他应用程序可以订阅这个主题来接收消息。通过将发送者和接收者分开,Google Cloud Pub/Sub让开发者能够在独立开发的应用程序之间进行沟通。
在AppEngine上,没有客户端发起的持久连接(也就是监听套接字),所以实现一个真正的实时推送系统几乎是不可能的。
正如你所知道的,你可以通过Channels API来接近这个目标(解决浏览器的推送问题),还有一些特定于移动设备的推送系统,比如GCM和APNS。
如果你想要一个通用的系统,我建议使用基于套接字的系统,类似于PubNub。你可以考虑一下Compute Engine,它支持这样的功能。