从一个Android客户端发送信息到许多Android客户端

时间:2016-06-07 18:48:56

标签: java android rest jersey

请问您能告诉我,如何在下面显示的这两种可能性中将信息从一个Android客户端发送到许多Android客户端?

  

1)来自客户端的请求进入服务器,从服务器进入其他客户端。在这里我知道从客户端到服务器我可以使用webservice。我怀疑的是当服务器具有某些信息时如何从服务器向客户端发送信息。在这种情况下,客户端不知道何时需要从服务器获取信息。只需服务器知道何时必须向客户端发送信息。

     

2)请求直接从客户端发送到其他客户端。

3 个答案:

答案 0 :(得分:1)

使用Firebase Cloud Messaging(FCM)向其他设备发送信息。

首先,您需要register后端的每个客户端设备。 这样,假设您要从设备向一组设备发送信息。你的后端可以知道发送信息的设备。

然后你的后端需要send信息和令牌设备到FCM服务器,这个服务器将发送你想要的每个设备的信息。

答案 1 :(得分:0)

您可以尝试Android推送通知。 一旦服务器从android客户端检索某些信息(通过httprequest从客户端请求到webservice),您就可以将推送通知从服务器发送到多个Android客户端,一旦客户端收到推送通知,您就可以执行某项任务。

答案 2 :(得分:0)

对于Android服务器,您的Web服务方法应该可以正常工作。对于Android服务器,您可以使用Google的Firebase云消息传递(FCM)。 FCM需要设置一个应用服务器,将数据发送给Google,然后将数据发送给订阅了该内容的Android客户端。让整个过程运行起来的快速方法是使用AeroGear https://aerogear.org/docs/unifiedpush/aerogear-push-android/。您甚至可以在OpenShift https://www.openshift.com/免费托管它。

步骤如下:

  1. 创建一个Aerogear容器(自托管或云托管,例如@ openshift)
  2. 注册Google FCM以获取推送通知并获取SenderID和Secret(您需要将其添加到Aerogear)
  3. 创建一个servlet,用于侦听来自客户端的更改(也可以在openshift中托管)并将通知发送到Aerogear(使用Aerogear的Java API),然后将其发送到Google FCM