【问题标题】:GCM device to device messaging - how is it done?GCM 设备到设备消息传递 - 它是如何完成的?
【发布时间】:2015-10-17 14:30:55
【问题描述】:

我对 WhatsApp 等应用如何实现此功能感兴趣。 我刚刚读到将消息直接从设备发送到设备是不好的做法,因为最终有人可以获取 API 密钥并作为我的应用程序发送消息。

那有什么解决办法呢?拥有一台服务器并使设备仅与该服务器通信,所以当我想向另一台设备发送消息时,它会发送到服务器并从服务器发送到该目标设备?

还有一个问题:

 public void onMessageReceived(String from, Bundle data)

这是 GcmListenerService 的一个方法。 “发件人”何时与默认发件人 ID 不同?因为我尝试将消息直接从一台设备发送到另一台设备,而“发件人”仍然是我在网站上注册应用程序时获得的默认发件人 ID。

【问题讨论】:

  • 在这里查看答案,stackoverflow.com/a/16143572/1168654
  • 它并没有真正回答我的问题,我对设备到设备的通知(消息)和工作流程感兴趣
  • 你试过 GCM 演示吗?在这里:developers.google.com/cloud-messaging/android/start 他们告诉我们 GCM 向所有设备发送通知,或者如果您有设备 ID,则向特定设备发送通知,所以我们可以说“要发送通知,我们需要 GCM 服务器??是或否”。以简单的方式将通知设备发送到设备是不可能的,但是您可以从设备调用 GCM 服务器,这已经在此处描述stackoverflow.com/a/16143572/1168654
  • 我试过了。我不确定你是否明白我的问题。我知道该通知仅从 GCM 服务器接收,无法从其他设备接收。但我的问题是基于 GCM 服务实现消息传递的最佳方式是什么。因为这样做的一种方法是将消息发送到我自己的服务器应用程序,然后将其发送到 GCM 服务器,然后将其发送到目标设备
  • 你走在正确的道路上,但你必须通过套接字编程来调用服务器,或者你可以检查这个服务github.com/redsolution/xabber-android

标签: java android google-cloud-messaging messaging


【解决方案1】:

基本上,您需要一个服务器来监听上游消息,然后再次广播给预期的接收者。

您可以在此处找到描述此内容的文章:http://javapapers.com/android/android-chat-with-google-gcm-xmpp/

这种方法非常有限,不像拥有自己的消息传递服务器那样灵活,但对于概念验证来说应该足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多