2014-09-12 130 views
2

我正在开发一个轻量级Android应用程序,该应用程序在接收RSS Feed的新条目时接收推送通知。后端驻留在Google App Engine上。我最初每隔30分钟就开始使用Cron来轮询Feed,直到我了解到Superfeedr。Google App Engine中的XMPP支持

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

我已经看到了如何在部署到谷歌应用程序引擎的应用程序中添加XMPP的支持例子,我有一个问题:

按照App Engine文档:URL路径/ _ah/XMPP /消息/聊天保留给XMPP消息发送。如果我需要第二个XMPP URL,那么url路径的外观是否有任何限制?我甚至必须使用/ _ah/xmpp/message/chat吗?

Superfeedr,尽我所知,建议单独的回调URL不同的饲料。我假设这是因为你不需要手动解析消息来确定它是用于哪个馈送。

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

感谢

回答

0

/_ah/xmpp/message/chat网址是您的应用程序使用从App Engine的XMPP基础设施接收传入的XMPP消息的端点。您不会直接将它用作场景中Superfeedr的回调。它只适用于您的应用程序用于响应发送到应用程序的JID([email protected]*@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

2

朱利安从Superfeedr在这里:)

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

现在,XMPP的能力了GAE被削弱,因为他们只suppport <message>,而不是其他元素,如<presence><iq>这将需要得到它与Superfeedr工作。这意味着你必须使用我们的PubSubHubbub API。

然后,你确实应该为你订阅的每个订阅源使用不同的回调URL,比如Dan说的。

相关问题