4

我使用 Google App Engine Server 构建了一个 Android 应用程序。现在我想在我的应用程序中添加简单的聊天。我有一些问题。

  • 我的用户注册了他们想要的电子邮件域,如 hotmail.com、yahoo.com 甚至更深奥的域,这意味着我需要为他们创建 JID?如果是这样,Google App 引擎是否为我可以操作的应用程序域提供 JID 创建?

  • 我读到 Google App Engine 充当 XMPP 客户端,所以我需要可以接收和发送 XMPP 消息的 Xmpp 服务器。那么我为什么要 GAE 呢?是 Openfire 是我的答案吗?我可以将 Openfire 与 GAE 集成吗?

  • 我还读到,如果我想在 GAE 和 Android 中使用 XMPP,我的客户端需要一个 Smack Api 并且它正在 HTTP 上工作。所以我想我需要每隔几秒钟轮询一次服务器以获取消息。有更好的模式吗?

4

2 回答 2

0

我的用户注册了他们想要的电子邮件域,如 hotmail.com、yahoo.com 甚至更深奥的域,这意味着我需要为他们创建 JID?如果是这样,Google App 引擎是否为我可以操作的应用程序域提供 JID 创建?

如果我正确理解了您的问题,那么您在这里应该没有任何问题。只要您不是垃圾邮件发送者,我们就不会对您可以发送到的域设置任何限制。

我读到 Google App Engine 充当 XMPP 客户端,所以我需要可以接收和发送 XMPP 消息的 Xmpp 服务器。那么我为什么要 GAE 呢?是 Openfire 是我的答案吗?我可以将 Openfire 与 GAE 集成吗?

您可以通过xmpp API(这是 python 版本)发送和接收 XMPP 消息。这会调用 Google Talk 基础架构。您无法访问传统上称为“XMPP 服务器”的东西,但您可以访问基本的 XMPP 功能。

我对 OpenFire 了解不多,但有一个可用于出站套接字的 Trusted Tester 程序,您可以注册。如果您需要外部 XMPP 服务器,这就是您所需要的。

我还读到,如果我想在 GAE 和 Android 中使用 XMPP,我的客户端需要一个 Smack Api 并且它正在 HTTP 上工作。所以我想我需要每隔几秒钟轮询一次服务器以获取消息。有更好的模式吗?

我应该先说我对 Android 或 aSmack 不太了解,但这不会阻止我尝试回答您的问题。:-)

我认为这取决于您的用例,但我想不出任何情况下您需要这样做。您的应用程序的用户是否会在他们注册的服务器上拥有自己的 JID?如果是这样,我看不出有任何理由必须通过 HTTP 连接,除非 aSmack 支持所有这些。BOSH/XMPP-over-HTTP 的主要用例是在浏览器中,您实际上无法访问打开的原始套接字。

如果您想将 XMPP 用作用户不知道的消息/通知服务,它可能会更复杂。我应该注意,您始终可以在Google Compute Engine上设置 XMPP 服务器。

于 2012-10-25T23:50:54.363 回答
0

我可以将 Openfire 与 GAE 集成吗?

您不能在 GAE 上运行 Openfire,因为 GAE 仅在 HTTP 上工作,因此您将无法像 Openfire 那样通过套接字进行连接。

于 2012-10-21T16:37:56.697 回答