使用 Google App Engine 发布订阅
Posted
技术标签:
【中文标题】使用 Google App Engine 发布订阅【英文标题】:Pubsub with Google App Engine 【发布时间】:2014-05-12 15:52:07 【问题描述】:我正在尝试使用 Google App Engine 实现 pubsub 消息传递。我希望能够将回调存储到其他服务器,然后在可用时向它们发送新数据。
我已经环顾四周,但除了自己实施之外似乎无法提出任何建议。我看过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
【问题讨论】:
【参考方案1】:AppEngine 上没有客户端发起的持久连接(即监听套接字),因此在其上实现实时推送系统是完全不可能的。
如您所知,您可以使用 Channels API(解决向浏览器的推送)和特定于移动设备的推送系统(GCM 和 APNS)。
如果您想要一个通用系统,我建议您使用基于套接字的系统,就像PubNub。您应该查看允许此类功能的Compute Engine。
【讨论】:
感谢您的帮助,我以为我只是在某处缺少一些服务。现在我可以看看其他解决方案。 有没有办法实现接近实时的推送系统?客户端完全同步并不重要,我只是不希望他们一直轮询。 是的,您可以使用上述服务:Channel API、GSM 和 APNS。 Channels api 将于 2017 年 10 月 31 日[拒绝](cloud.google.com/appengine/docs/deprecations/channel)。他们建议现在使用Firebase【参考方案2】:有一个Limited Preview for Google Cloud Pub/Sub 会随着它的成熟而引起注意。
Google Cloud Pub/Sub 旨在提供可靠、多对多、 应用程序之间的异步消息传递。发布者应用程序 可以向“主题”发送消息,其他应用程序可以订阅 该主题以接收消息。通过解耦发送者和 接收者,Google Cloud Pub/Sub 允许开发者进行通信 在独立编写的应用程序之间。
【讨论】:
以上是关于使用 Google App Engine 发布订阅的主要内容,如果未能解决你的问题,请参考以下文章
Google App Engine 中未订阅用户的 IM 状态
PayPal-Java-SDK 和 Google App Engine - 订阅反射错误
如何在 Google App Engine 中“运行”“Paypal 订阅服务”?
从 Google Pub/Sub 调用 Google App Engine 端点