17

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

我看到您可以从服务器发送数据(例如消息),但也可以从一台设备发送到另一台设备吗?这将如何运作?一些示例代码将非常有帮助..

天呐!

4

4 回答 4

19

Google Cloud Messaging for Android的官方文档确实提到 GCM 可用于开发即时消息应用程序。

...或者它可能是包含多达 4kb 有效负载数据的消息(因此即时消息等应用程序可以直接使用该消息)。

所以我们继续使用 GCM 创建了一个即时消息应用程序。服务器端由 Google App Engine 提供支持。你可以在这里阅读完整的教程。使用 Google Cloud Messaging (GCM) 创建即时消息应用

因此,可以在 Android 上使用 GCM for Instant Messaging 来回答您的问题。然而,与用于 IM 的 XMPP 相比,GCM 的可靠性是另一个话题。

于 2013-07-25T15:24:04.753 回答
10

只是我的两分钱:

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

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

谷歌曾表示不能保证 GCM 消息的传递。仅凭这个原因依赖它们进行即时消息传递并不是一个好主意。

于 2012-07-07T19:55:01.210 回答
0

试试 pub nub - 这很容易实现 - 将 Im 从一部手机发送到另一部手机 - 只需在浏览器中启动网页(见链接),然后在 pc、手机和作品之间聊天 - 使用“无服务器”。代码适用于 javascript,但它们也有 java。使用 jquerymobile web 应用框架的聊天应用

于 2012-10-20T01:32:52.197 回答
0

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

于 2013-07-11T07:12:57.073 回答