客户端(Android应用程序)用于发送gcm消息

时间:2014-02-04 09:08:24

标签: android push-notification xmpp real-time google-cloud-messaging

Android应用程序可以通过googleclougmessaging.send()向ccs服务器获取已发送gcm消息的确认吗?客户如何确定将消息传递到ccs服务器?

3 个答案:

答案 0 :(得分:2)

根据Cloud Connection Server文档,从设备向云发送消息时唯一的确认是Cloud Connection Server从您的服务器预期的确认。它只告诉CCS您的服务器收到了消息,但CCS没有将该确认传递给设备。

  

以下是CCS从第三方应用程序预期的ACK格式   服务器响应上述消息:

<message id="">
  <gcm xmlns="google:mobile:data">
      {
          "to":"REGID",
          "message_id":"m-123"
          "message_type":"ack"
      } 
  </gcm>
</message>

当然,您的服务器可以将消息发送回设备,作为对从设备获取的消息的响应,该消息可以作为确认。

答案 1 :(得分:1)

我面对Gcm Ack的许多问题,所以你的解决方案是自己做,这是非常的样本:

  1. 当xmpp收到任何消息时,您应该编写一个函数,将ack发送给发件人(通过GCM),并附上您想要的任何数据。当发送方设备获得该确认(让我们称之为“(fromxmppAck”)时,您可以将其作为所有内容的确认处理。
  2. 当目标设备收到任何消息时,你应该编写一个函数来向xmpp发送ack告诉目标设备收到消息,(调用它:from_target_ack)
  3. 当服务器获取“from_target_ack”(它必须包含原始发件人的ID)时,只需将邮件传递给原始发件人...
  4. 在原始发件人中,您应该知道该消息是否已到达目标。
  5. 这是我用GCM Acks强制出现问题时所做的,我只是忽略gcm acks并做了1. 2. 3. 4.一切正常

答案 2 :(得分:0)

据我所知,gcm将ack发回设备... ack消息类型为&#34;发送事件&#34;它包含:1.message id 2. event ..事件faild描述发送消息的结果。