【问题标题】:GCM Server/Sender Setup for Device-to-Device Communication in Android用于 Android 中设备到设备通信的 GCM 服务器/发送器设置
【发布时间】:2012-08-03 20:34:46
【问题描述】:
我一直在阅读 GCM 开发者页面,但似乎都不太复杂。但是,从概述的角度来看,我对自己想要什么感到困惑。我在一台设备上有一个应用程序,它会将一些信息发送到另一台 Android 设备,然后它会处理这些信息。这只是一对双打。
除了简单的网站/路由器之外,我从来没有做过任何网络通信的经验,所以我意识到这是一个非常缺乏经验的问题——但是当我在我的两台设备上设置 GCM 时,哪个设备充当“服务器”,哪个作为“客户端”?都是客户端,Google 是服务器吗?
感谢您的帮助。
【问题讨论】:
标签:
android
google-cloud-messaging
【解决方案1】:
我认为你想进行双方沟通。你可以做一个认为将手机的RegistrationID保存到服务器上。无论您想传达什么数据,您都应该首先将其保存到服务器。并且每当服务器发送通知时,它都会使用注册 ID 向特定客户端提供信息。
【解决方案2】:
两个 android 设备都被视为客户端。客户端将与可以以多种方式实现的后端服务器通信。 Google 提供的示例使用为 Java App Engine 编写的标准 Web 应用程序。您可以在此处找到示例:
Setting Up the Server
您还可以使用 ASP.NET、PHP 等编写服务器。我通常在后端拥有的也是一个 SQL 数据库,用于管理在我的应用程序中注册的设备。每个设备(客户端)都从 Google 获得一个唯一的 ID,服务器将使用该 ID 进行通信。服务器使用此 ID 是因为它将发送的消息不是直接发送给客户端,而是发送给 GCM 服务。所以本质上,Google GCM 是后端服务器的服务器,后端服务器是 GCM 的客户端。
希望这能回答您有关客户端/服务器通信的问题。详细实现请看谷歌的demo。祝你好运!