2

我正在开发一个轻量级的 Android 应用程序,当 RSS 提要有新条目时,它会接收推送通知。后端驻留在 Google App Engine 上。我最初开始使用 Cron 每 30 分钟轮询一次 Feed,直到我了解了 Superfeedr。

听起来很容易使用。我基本上使用某些参数发出 HTTP Post 请求,其中包括我想要关注的提要 URL、回调 URL 和一些其他参数。

我已经看到了如何在部署到 Google App Engine 的应用程序上添加 XMPP 支持的示例,我有一个问题:

根据应用程序引擎文档: URL 路径 /_ah/xmpp/message/chat 保留用于发送 XMPP 消息。如果我需要第二个 XMPP URL,对 url 路径的外观是否有任何限制?我什至必须使用 /_ah/xmpp/message/chat 吗?

据我所知,Superfeedr 建议为不同的提要使用单独的回调 URL。我假设这样您就不必通过手动解析消息来确定它用于哪个提要的工作。

解析请求中的 XMPP 消息看起来很简单,所以我不确定是否尝试在 /_ah/xmpp/message/chat 以外的 Servlet 内部调用 parseMessage 是否会导致问题。

谢谢

4

2 回答 2

2

来自 Superfeedr 的 Julien 在这里 :)

不要混淆 XMPP 和回调 url :) 回调 url 用于我们的 HTTP API(基于 PubSubHubbub),而 XMPP 是一个完全不同的 API,使用 XMPP 协议 (XEP60) 而不是 HTTP。

现在,XMPP 在 GAE 之外的功能被削弱了,因为它们只支持<message>而不是其他元素,例如<presence><iq>使其与 Superfeedr 一起工作所需的元素。这意味着您必须使用我们的 PubSubHubbub API。

然后,您确实应该像 Dan 所说的那样为您订阅的每个提要使用不同的回调 url。

于 2014-09-15T11:12:56.693 回答
0

/_ah/xmpp/message/chatURL 是您的应用用来接收来自 App Engine XMPP 基础架构的传入 XMPP 消息的端点。在您的场景中,您不会直接将其用作 Superfeedr 的回调。它仅供您的应用用于对发送到应用的 JID(app-id@appspot.com*@app-id.appspot.com)的 XMPP 消息做出反应。

看起来 Superfeedr 可以使用 HTTP 端点回调来推送 RSS 更新。为此,您可以使用自己设计的任何端点。您需要将 PubsubHubbub 订阅的回调字段设置为您要使用的应用程序的 HTTP URL。你根本不需要 XMPP 来与 Superfeedr 交互。(从技术上讲,您可以将它与他们的 XMPP Pubsub 功能和应用程序的其中一个 JID 一起使用,请求处理程序映射到/_ah/xmpp/message/chat,但这是一种迂回的方式。)

如果您还考虑将 XMPP 用于 Android 推送,则可以只使用 Google Cloud Messaging (GCM) 进行该部分。 https://developer.android.com/google/gcm/index.html

于 2014-09-13T07:33:08.450 回答