当设备想要通过 CCS 向 3rd-party 服务器发送消息时,如果 CSS 无法将消息传递到服务器,它会像 Google Cloud Messaging 那样存储消息,还是通知设备它无法发送它和设备上的应用程序负责稍后重新发送它?
另外,如果 CCS 确实连接到第 3 方服务器但发送消息时出现问题,它会通知客户端应用程序错误吗?
当设备想要通过 CCS 向 3rd-party 服务器发送消息时,如果 CSS 无法将消息传递到服务器,它会像 Google Cloud Messaging 那样存储消息,还是通知设备它无法发送它和设备上的应用程序负责稍后重新发送它?
另外,如果 CCS 确实连接到第 3 方服务器但发送消息时出现问题,它会通知客户端应用程序错误吗?
基于GoogleCloudMessaging 类的 API,消息被存储在 GCM 服务器中,就像云到设备的消息一样,取决于指定的timeToLive
.
timeToLive
仅当指定为 0时,CCS 才会在发送消息出现问题时返回错误。
public void send (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 而被丢弃,我们不会返回错误——这可能发生在服务器端,并且需要额外的通信。
要发送的数据 键/值对。值必须是字符串,任何其他类型都将被忽略。
投掷
IO异常
public void send (String to, String msgId, Bundle data)
发送“设备到云”消息。如果我们在最大时间间隔内没有活动连接,则消息将排队。
参数
用于 标识消息接收者的字符串。对于 GCM 项目 ID,该值为 SENDER_ID@gcm.googleapis.com。SENDER_ID 应该是 register() 中使用的发送者 ID 之一。
msgId 消息的 ID。这是由应用程序生成的。对于每条消息,它必须是唯一的。这允许错误回调和调试。
要发送的数据 键/值对。值必须是字符串——任何其他类型都将被忽略。
投掷
IO异常