使用Android GCM实现设备到设备的推送通知,无需第三方服务器。

5
我们计划在Android上编写一个消息/聊天类应用程序。我们计划使用GCM来交换消息。传统的方法是有一个应用服务器来存储所有用户的gcmid,如果user1想要向user2发送消息,则:
1.用户1将带有消息和收件人ID(即user2)的载荷发送到应用服务器。 2.应用服务器检索user2的gcmid并调用sender.send(regid2, message)。 3.User2接收到消息。
我看到这只是对https://android.googleapis.com/gcm/send进行REST API调用而已。
因此,如果user1以某种方式拥有了user2的gcmid,为什么不能直接从user1设备调用gcm API,以减轻服务器负担和操作成本呢?请就此提供建议。
注意:我们不打算使用上行通信。

你解决了你的问题吗?你能否在不使用服务器的情况下将数据发送到另一个安卓设备? - Sagar Nayak
2个回答

1

谢谢提供信息。我们已经能够直接通过设备进行推送,而无需使用服务器。我的问题是想询问这种方式是否合适,您是否预见到未来可能会出现的任何问题? - user2653234
啊,使用这个有太多限制了,因为你不能发送超过4KB的数据。推送通知也需要时间。而且你也不能传输像音频、视频、图片等文件。 - Pankaj Arora
你提出的例子仍然在使用服务器,这如何解决问题? - Sagar Nayak

0
如果某种方式用户1有了用户2的gcmid,我认为这正是困难所在。如果您直接从设备调用GCM API,则需要将gcmid从一个设备传输到另一个设备,迄今为止我能想到的最简单和可扩展的解决方案是使用一个服务器,可从每个设备访问。

我想将所有用户朋友的GCM存储在设备上,以减少服务器依赖性,从而降低我们计划运行服务器的GAE的每日维护成本。因此,我想知道是否直接从Android设备进行GCM调用是正确的方式。 - user2653234

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接