2012-10-21 81 views
4

我建立了與谷歌應用程序引擎服務器的Android應用程序。現在我想添加簡單的聊天到我的應用程序。我有一些問題。模式構建聊天應用程序與XMPP

  • 我的用戶提供他們所需的電子郵件域像hotmail.com,yahoo.com或更深奧的領域,這就是意味着,我需要建立JID爲他們註冊?如果是這樣的谷歌應用程序引擎提供JID創作與我可以操縱我的應用領域?

  • ,我讀了谷歌應用程序引擎充當XMPP客戶端,所以我需要XMPP服務器可以接收和發送XMPP消息。那麼,爲什麼我的GAE? Openfire是我的答案嗎?我可以將Openfire與GAE集成嗎?

  • 我也看了,如果我想在需要aSmack API來使用XMPP在GAE和Android爲我的客戶,它正在HTTP。所以我想我需要每隔幾秒輪詢一次服務器的消息。有更好的模式嗎?

回答

0

我可以整合的Openfire與GAE?

不能在GAE運行的Openfire因爲GAE只適用於HTTP,所以你將不能夠插槽,即Openfire的不進行連接。

+1

不知道這如何適用於GAE,但Openfire具有XMPP BOSH支持(XMPP-over-HTTP)。 – Flow

0

我的用戶註冊了他們期望的電子郵件域名,如hotmail.com,yahoo.com,甚至更深奧的域名,這意味着我需要爲他們創建JID?如果是這樣的谷歌應用程序引擎提供JID創作與我可以操縱我的應用領域?

如果我正確理解你的問題,你應該在這裏沒有任何問題。只要你不是垃圾郵件發送者,我們就不會對您可以發送到什麼領域沒有任何限制。

我讀到Google App Engine充當XMPP客戶端,所以我需要Xmpp Server來接收和發送XMPP消息。那麼,爲什麼我的GAE? Openfire是我的答案嗎?我可以將Openfire與GAE集成嗎?

您可以發送和接收通過xmpp API XMPP消息(這是蟒蛇版)。這會調用Google Talk基礎架構。您無法訪問傳統上稱爲「XMPP服務器」的內容,但您可以訪問基本的XMPP功能。

我對OpenFire瞭解不多,但是這是一個用於出站套接字的可信測試程序you can sign up for。如果你需要一個外部的XMPP服務器,這是你需要的。

我還讀到,如果我想在GAE和Android中使用XMPP,需要爲我的客戶端安裝aSmack Api,並且它正在使用HTTP。所以我想我需要每隔幾秒輪詢一次服務器的消息。有更好的模式嗎?

我應該在這裏加上前綴:我不知道有關Android或aSmack的很多內容,但這不會阻止我回答你的問題。:-)

我認爲這取決於你的用例,但我想不出任何情況下你需要從頭頂上做這件事。你的應用程序的用戶會在他們註冊的服務器上擁有自己的JID嗎?如果是這樣,我不認爲有任何理由你必須通過HTTP連接,除非這是所有aSmack支持的。 BOSH/XMPP-over-HTTP的主要用例是在瀏覽器中,您無法真正訪問打開原始套接字。

如果你想使用XMPP作爲用戶不知道的消息/通知服務,它可能會更復雜。我應該注意你可以總是在Google Compute Engine上建立一個XMPP服務器。