2012-07-06 119 views
18

我剛剛查看了新的Google雲消息傳遞(GCM),我想知道是否可以在Android應用程序上使用GCM進行即時消息傳遞?Android上使用Google雲消息傳遞的即時消息

我看到你可以從服務器發送數據,如消息,但它是否也可以從一個設備發送到另一個? 這將如何工作? 一些示例代碼將非常有幫助..

Tnx!

回答

19

Google Cloud Messaging for Android上的official docs確實提到GCM可用於開發即時消息應用程序。

...或者它可以是含有最多的有效載荷數據的4KB的消息(所以 應用程序,如即時消息傳遞可以直接使用該消息)。

所以我們繼續使用GCM創建一個即時消息應用程序。服務器端由Google App Engine提供支持。你可以在這裏閱讀完整的教程。 Create an Instant Messaging app using Google Cloud Messaging (GCM)

因此,可以在Android上使用GCM進行即時消息傳遞,以回答您的問題。但是,與用於IM的XMPP相比,GCM的可靠性是另一個話題。

+0

酷教程。需要多長時間才能製作出來?有多少人蔘與? – defhlt 2014-11-10 12:02:47

10

只是我的兩分錢:

我認爲你不應該使用GCM交付IM。您應該有一個專用服務器,您的Android即時通訊應用程序將使用持久套接字連接來連接到該服務器。您的服務器將知道誰在線或不在線,因此可以向所有應用呈現「在線列表」。

GCM可以發揮作用,而用戶脫機或不運行您的應用程序。 GCM消息可以發送給他們以指示'XXXX想要聊天'。然後,他們可以啓動您的應用並自動連接到聊天會話。

Google表示不保證傳遞GCM消息。僅憑這個原因,依靠他們進行即時消息並不是一個好主意。

+0

你知道IM的一種替代方法嗎? tnx – dumazy 2012-07-08 19:53:37

+5

IM是一個複雜的野獸,如果可能,最好不要重新發明輪子。在XMPP上進行谷歌搜索,您可能會發現一些免費或便宜的解決方案,您可以將其集成到您的環境中。也看到這個主題:http://stackoverflow.com/questions/4769020/android-and-xmpp-currently-available-solutions – azgolfer 2012-07-08 21:00:16

+0

嗨簽出pub nub - 它很容易實現 - 看看他們是否有一個Java客戶端在這裏是一款適用於手機的JavaScript解決方案。 ozmike 2012-10-20 01:25:01

0

嘗試pub nub - 它很容易實現 - 將Im從一個移動設備發送到另一個移動設備 - 只需在瀏覽器中啓動網頁(請參閱鏈接),以及在PC,移動設備和作品之間進行聊天,服務器'。代碼是爲JavaScript,但他們也有Java。 Chat app using jquerymobile web app framework

0

您可能想查看服務器如何向GCM服務發送消息。可以在服務器端使用php,所以應該可以直接將它應用於POST請求。但是,爲了溝通,您需要註冊想要發送數據的設備的ID。意味着你需要一些東西來存儲和獲取它們。最好的解決方案將是你自己的(網絡)服務器,它存儲所有ID並處理消息發送。