当设备想要通过CCS向第三方服务器发送消息时,如果CSS无法将消息传递到服务器,它是否会像Google Cloud Messaging那样存储消息,或者是否会通知设备它无法发送它,设备上的应用程序负责在以后再次重新发送它?
此外,如果CCS确实连接到第三方服务器但发送邮件时出现问题,它是否会通知客户端应用程序错误?
答案 0 :(得分:1)
根据API of the GoogleCloudMessaging class,消息将存储在GCM服务器中,就像Cloud to Device消息一样,具体取决于指定的timeToLive
。
只有在指定的timeToLive
为0时,CCS才会在出现问题时返回错误。
public void 发送(String to,String msgId,long timeToLive,Bundle data)
发送“设备到云”消息。 GCM开发指南中记录了最大存储时间的当前限制和每个应用程序的未完成消息数。
<强>参数强>
到字符串标识邮件的接收者。对于GCM项目ID,值为SENDER_ID@gcm.googleapis.com。 SENDER_ID应该是register()中使用的发件人ID之一。
msgId 消息的ID。这是由应用程序生成的。每条消息必须是唯一的。这允许错误回调和调试。
timeToLive 如果为0,我们会立即尝试发送,如果我们没有连接,则会返回错误。 否则,邮件将排队。至于服务器端消息,如果消息由于TTL而被丢弃,我们不会返回错误 - 这可能发生在服务器端,这需要额外的通信。
数据要发送的键/值对。值必须为String,任何其他类型都将被忽略。
<强>抛出强>
IOException
public void 发送(String to,String msgId,Bundle data)
发送“设备到云”消息。 如果我们没有最大间隔的有效连接,则邮件将排队。
<强>参数强>
到字符串标识邮件的接收者。对于GCM项目ID,值为SENDER_ID@gcm.googleapis.com。 SENDER_ID应该是register()中使用的发件人ID之一。
msgId 消息的ID。这是由应用程序生成的。每条消息必须是唯一的。这允许错误回调和调试。
数据要发送的键/值对。值必须为String-将忽略任何其他类型。
<强>抛出强>
IOException