Google App Engine中的XMPP支持

时间:2014-09-12 20:58:53

标签: android google-app-engine rss superfeedr

我正在开发一个轻量级Android应用程序,该应用程序在对RSS Feed进行新条目时接收推送通知。后端驻留在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,尽我所知,建议为不同的Feed提供单独的回调网址。我假设这样做,所以你不必经历手动解析邮件的工作,以确定它的订阅源。

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

由于

2 个答案:

答案 0 :(得分:2)

来自Superfeedr的Julien:)

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

现在,XMPP在GAE中的功能已经瘫痪,因为它们只支持<message>,而不支持其他元素,例如<presence><iq>。与Superfeedr合作。这意味着您必须使用我们的PubSubHubbub API。

然后,您确实应该为您订阅的每个Feed使用不同的回调网址,例如Dan说。

答案 1 :(得分:0)

/_ah/xmpp/message/chat URL是您的应用用于从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