【发布时间】:2015-10-17 14:30:55
【问题描述】:
我对 WhatsApp 等应用如何实现此功能感兴趣。 我刚刚读到将消息直接从设备发送到设备是不好的做法,因为最终有人可以获取 API 密钥并作为我的应用程序发送消息。
那有什么解决办法呢?拥有一台服务器并使设备仅与该服务器通信,所以当我想向另一台设备发送消息时,它会发送到服务器并从服务器发送到该目标设备?
还有一个问题:
public void onMessageReceived(String from, Bundle data)
这是 GcmListenerService 的一个方法。 “发件人”何时与默认发件人 ID 不同?因为我尝试将消息直接从一台设备发送到另一台设备,而“发件人”仍然是我在网站上注册应用程序时获得的默认发件人 ID。
【问题讨论】:
-
它并没有真正回答我的问题,我对设备到设备的通知(消息)和工作流程感兴趣
-
你试过 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