使用 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 端点

Google App Engine 和 Socket.IO 上的移动聊天应用程序

打开 WebSocket 会导致 Google App Engine 上出现延迟峰值