【问题标题】:Instant Messaging on Android with Google Cloud Messaging使用 Google Cloud Messaging 在 Android 上使用即时消息
【发布时间】:2012-07-07 06:30:36
【问题描述】:

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

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

Tnx!

【问题讨论】:

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


    【解决方案1】:

    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 的可靠性是另一个话题。

    【讨论】:

    • 很酷的教程。你花了多少时间来创作这个?有多少人参与?
    【解决方案2】:

    只要我的两分钱:

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

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

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

    【讨论】:

    • 您知道 IM 的某种替代方案吗? tnx
    • IM 是一个复杂的野兽,如果可能,最好不要重新发明轮子。在 XMPP 上进行谷歌搜索,您可能会找到一些可以集成到您的环境中的免费或便宜的解决方案。另请参阅此主题:stackoverflow.com/questions/4769020/…
    • 您好,请查看 pub nub - 这很容易实现 - 看看他们是否有 Java 客户端,这是一个仅适用于移动设备的 JavaScript 解决方案。 stackoverflow.com/questions/7316186/…>
    • 我完全同意,因为我在消息传递方面有一些延迟,甚至有些被完全跳过。
    【解决方案3】:

    试试 pub nub - 它很容易实现 - 将我从一部手机发送到另一部手机 - 只需在浏览器中启动网页(见链接),然后在电脑、手机之间聊天 - 并且可以使用“无服务器” '。代码适用于 javascript,但它们也有 java。 Chat app using jquerymobile web app framework

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2014-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-11
        相关资源
        最近更新 更多