代码之家  ›  专栏  ›  技术社区  ›  techtinkerer

没有我自己的GCM服务器的Android客户端到客户端消息

  •  2
  • techtinkerer  · 技术社区  · 10 年前

    我正在做一个涉及客户端之间消息传递的原型。

    我想做的是-从设备1上的MyApp,能够向设备2上的MyApp发送消息。设备2应该收到此消息并显示通知。

    我没有自己的应用服务器将通知从GCM推送到GCM客户端。这可能吗?怎么做?

    我调查的是PubNub,它有一个试用许可证,似乎可以满足我在不需要服务器的情况下在频道上发送消息的需求。

    这次在SO的讨论没有太大帮助。

    sending client to client messages without server interaction

    有人能提出更好的方法吗?

    3 回复  |  直到 8 年前
        1
  •  2
  •   C0D3LIC1OU5    10 年前

    您基本上必须以某种方式使用服务器。我想 Firebase 对你的目的来说是完美的。它有一个你可以使用的Android插件,当数据库发生变化时,它基本上会提醒你的应用程序。这是相关文档 feature 。看看这个 example 以便实施。在你可以使用这个插件之前,你需要创建一个帐户等等(基本的是免费的)。以下是 instructions .

        2
  •  2
  •   Community Mohan Dere    5 年前

    PubNub实时消息和推送通知

    (不需要服务器)

    使用PubNub,您不需要 你自己的 服务器进行实时消息传递或移动推送通知。您可能有自己的数据库服务器(MySQL或类似的传统RDBMS、MongoDB之类的无SQL数据库或Firebase之类的实时数据库同步)来验证用户等。

    对于实时数据库或非数据库类型更改通知和信令(任何类型的实时消息传递),PubNub使其非常简单 receive messages in realtime with a mobile push notification fallback in one publish action 因此GCM消息将与实时消息一起发送。如果应用程序正在运行,您可以实时获取它(平均<1/4-通常更快),如果应用程序未处于活动状态(后台或根本未启动),则会收到GCM消息。

    PubNub's free plan is not a trial (anymore). It is free (including all add-ons) for as long as you stay within the free plan limits .

    请参见 PubNub Android docs 有关详细信息和 contact PubNub support 如果您在开始应用程序实施过程中有任何进一步的问题或获得任何问题的答案。

        3
  •  1
  •   Community Mohan Dere    5 年前

    另一种可能性是使用短信。

    Android Send and Recieve Messages

    “发送二进制(数据)短信

    我们可以使用sendDataMessage()向特定的应用程序端口发送二进制消息(与前面讨论的基于文本的消息相反)。根据这个堆栈交换线程数据,短信是通过2G/3G和GSM发送的。我在移动数据关闭的情况下测试了它,它的工作原理是向我收取相同的费用,所以我不太确定它是否使用2G/3G,但通常情况下,当它与网络(tcp/ip)相关时,数据一词用于电话。无论如何,SMS通常被发送到设备上的特定端口(可能是端口0[零])。但使用sendDataMessage(),我们可以将短信发送到其他一些随机端口,我们的应用程序可以在该端口上侦听传入的短信,并对此进行处理。在这种情况下,默认的消息应用程序不会将短信存储在发送方和接收方的收件箱中。 "