我刚刚看到新的Google云消息传递(GCM),我想知道是否可以在Android应用程序上使用GCM进行即时消息传递?
我看到你可以从服务器发送数据,比如消息,但是也可以从一个设备发送到另一个设备吗? 这将如何运作? 一些示例代码非常有用..
TNX!
答案 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并处理消息发送。