3

我有两个运行 gcm 客户端应用程序的 android 设备。我得到了两个设备的注册 ID。我还有一个服务器 API 密钥。现在的问题是,使用使用 cUrl 或 Zend 框架的简单 php 代码,我可以将消息从 Web 服务器发送到我的一个机器人(当然我也可以广播)。但是,有了这个,有没有办法将字符串从一个设备发送到另一个设备?

4

2 回答 2

3

从我的书中引用自己的话:

您可能很想在没有自己的服务器的情况下使用 GCM 进行点对点消息传递。实际上,每个 Android 应用程序都是它自己的服务器,使用您可能在 Android 应用程序内的 Web 应用程序中使用的相同 JAR 向其他方发送消息。例如,您可以在没有专用聊天服务器的情况下实现聊天系统。

这里的危险在于,这需要将您的 API 密钥嵌入到您的 Android 应用程序中。任何拥有该 API 密钥的人都完全有能力从您那里伪造消息。您可以对该 API 密钥设置的 IP 地址限制不太可能有帮助,因为您的合法使用可能来自任何 IP 地址,而不仅仅是某个单一服务器。由于在 APK 文件中找到魔法字符串对于那些有倾向的人来说并不难,因此将您的 API 密钥放入 APK 文件是一个危险的举动。

因此,您将需要自己的一些服务器作为中间人。

于 2012-09-24T12:51:44.597 回答
2

您可以做的一件事是使用消息和其他 Android 设备的注册 ID 向您的 Web 服务器发出 POST 请求,但这会有点麻烦,因为您必须想办法检索注册 ID来自您的网络服务器的其他 Android 设备。

我建议研究 XMPP,因为该协议是从头开始构建的,是一个广泛的消息传递协议。我很确定你会找到好的 XMPP 服务器框架来实现你的功能。

于 2012-09-24T12:53:46.380 回答