2013-06-18 37 views
7

也許你已經聽說過它。它在一個月前在Google IO上宣佈。 Google雲消息傳遞只是下游(服務器 - >電話),但現在通過增強型CCS(雲連接服務器),您可以通過持久的TCP連接向上遊發送消息,這要歸功於XMPP協議。我已經設計了一個適用於GCM和HTTP的應用程序。它使用gcm庫和那裏打包的類(如GCMRegistrar)。現在不推薦使用這些類,Google建議使用GoogleCloudMessaging API。Google Cloud Messaging over XMPP協議(服務器使用PHP和XMPPHP)。它是如何工作的?

現在一切工作有點不同。你有Google文檔,他們解釋得非常好,你如何設計你的Android應用程序。但我有服務器的問題,因爲我以前從未使用過XMPP。他們在Python中給出了一個代碼: http://developer.android.com/google/gcm/gs.html 但我不知道Python。所以我調查了一下,然後找到了XMPPHP庫。然後,您可以使用PHP並使用該庫與XMPP進行連接併發送/接收消息。

我沒有使用它的經驗,它不適用於我。我如何打開與Google XMPP服務器的XMPP連接?

我發現這個方法來打開(你與庫在這裏工作)的連接:

$conn = new XMPPHP_XMPP($host, $port, $user, $password, $resource, $server, $printlog, $loglevel); 

有誰知道我要在這裏傳遞,以與谷歌CCS連接的參數?

我想太瞭解:

如何基於XMPP協議發送消息到設備? 如何從設備接收消息?

+0

$ conn = new XMPPHP_XMPP('http://gcm.googleapis.com','5235',' @ gcm.googleapis.com','apikey','',$ server,'true' ,'info'); –

+0

我認爲它現在可以工作,我應該讓這個連接打開嗎?你知道我該如何發送消息到設備來測試一切正常嗎?我的Android應用程序已準備好與廣播接收器 –

+0

可以向我提供最新的gcm服務器代碼的代碼嗎? –

回答

2

我遇到了同樣的問題,嘗試使用XMPPHP,但後來發現JAXL庫並切換到它。見unable to connect to Google Cloud Connection Server。 JAXL允許您使用特殊調試模式'log_level' => JAXL_DEBUG來觀看它發送的內容。然後我看到Google發給我這個:

<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><temporary-auth-failure/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Project 1945693724760 not whitelisted.</text></failure> 

這就是我無法發送任何通知的原因。您應該先註冊CCS:https://services.google.com/fb/forms/gcm/