使用Google Cloud Messaging在Android上进行即时消息传递

时间:2012-07-06 19:08:35

标签: android instant-messaging google-cloud-messaging

我刚刚看到新的Google云消息传递(GCM),我想知道是否可以在Android应用程序上使用GCM进行即时消息传递?

我看到你可以从服务器发送数据,比如消息,但是也可以从一个设备发送到另一个设备吗? 这将如何运作? 一些示例代码非常有用..

TNX!

4 个答案:

答案 0 :(得分: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 for Instant Messaging来回答您的问题。但是,与IM的XMPP相比,GCM的可靠性是另一个主题。

答案 1 :(得分:10)

只是我的两分钱:

我认为你不应该使用GCM来提供IM。您应该有一个专用服务器,您的Android IM应用程序将连接到该服务器,使用持久套接字连接。您的服务器将知道谁在线,因此可以向所有应用程序提供“在线列表”。

当用户离线或未运行您的应用时,GCM可以发挥作用。可以向他们发送GCM消息以指示“XXXX想要聊天”。然后,他们可以启动您的应用并自动连接到聊天会话。

谷歌表示无法保证提供GCM消息。单凭这个原因并不是一个好主意,依靠它们进行即时消息传递。

答案 2 :(得分:0)

尝试pub nub - 它非常容易实现 - 将Im从一个移动设备发送到另一个移动设备 - 只需在浏览器中启动网页(请参阅链接),然后在PC,移动设备之间聊天 - 并且可以使用“无服务器” ”。代码适用于javascript,但它们也有java。 Chat app using jquerymobile web app framework

答案 3 :(得分:0)

您可能想要查看服务器如何向GCM服务发送消息。可以在服务器端使用php,因此应该可以直接从应用程序中将其调整为POST请求。但是,要进行通信,您需要将要发送数据的设备的注册ID。意味着您需要存储和获取它们。最佳解决方案是您自己的(Web)服务器,它存储所有ID并处理消息发送。