可以使用gcm在Android设备之间发送和接收消息吗?

时间:2012-09-24 12:45:55

标签: android zend-framework curl google-cloud-messaging

我有两台运行gcm客户端应用的Android设备。我得到了两台设备的Reg ID。我还有一个服务器API密钥。现在的事情是,使用cUrl或Zend框架使用简单的PHP代码,我能够从Web服务器向我的一个机器人发送消息(当然我也可以广播)。但是,有了这个,有没有办法从一个设备发送字符串到另一个设备?

2 个答案:

答案 0 :(得分:3)

my book引用自己:

  

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

     

这里存在的危险是,这需要将API密钥嵌入其中   你的Android应用程序。拥有该API密钥的任何人都完全有能力锻造   来自你的消息。您可以对该API密钥进行IP地址限制   不太可能有所帮助,因为您的合法用途可能来自任何IP地址,而不是   只是一些单一的服务器因为在APK文件中找到魔术字符串并不困难   对于有倾向的人,将API密钥放入APK文件是危险的   移动。

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

答案 1 :(得分:2)

您可以做的一件事就是使用其他Android设备的消息和注册ID向您的网络服务器发出POST请求,但这样做有点麻烦,因为您必须找到一种方法从您的网络服务器检索其他Android设备的注册ID。

我建议调查XMPP,因为这个协议是从一开始就构建成一个广泛的消息传递协议。我非常确定您会找到优秀的XMPP服务器框架来实现您的功能。