使用Google Cloud Messaging API时出现限速超出错误

Pau*_*ulR 11 android google-cloud-messaging google-play-services chrome-gcm

使用Google Cloud Messaging API在后端服务器和Android/Chrome客户端之间发送邮件时,后端服务器有时会收到超出速率限制的响应代码.此代码对于HTTP连接服务器为"DeviceMessageRateExceeded",对于云连接服务器为"DEVICE_MESSAGE_RATE_EXCEEDED" .

这个错误代码是什么以及应该如何管理?

Pau*_*ulR 12

速率限制异常代码表示您过于频繁地从后端服务器发送消息.为确保稳定的服务,可以从后端服务器发送的消息数每分钟/每设备应用程序上限.此限制设置为高,因此大多数表现良好的应用程序不应受到影响,但所有应用程序都应准备好接收此错误代码.

如问题中所述,对于HTTP连接服务器,错误代码将为"DeviceMessageRateExceeded".对于云连接服务器,它将是"DEVICE_MESSAGE_RATE_EXCEEDED",它将替换先前的错误代码"QUOTA_EXCEEDED".

如果您的后端服务器收到此错误代码,它必须降低它向客户端发送消息的速率,理想情况是通过实现指数退避.


小智 7

CCS下游ack未计入配额.

当您向单个设备发送过多消息时,会触发DeviceMessageRateExceeded配额 - 您不需要退回所有发送,只需退回该注册ID.请确保您处理"Canonical"注册ID响应 - 可能有多个regid指向同一设备.

'quota_exceeded'用于C2DM - GCM目前不返回它.如果有人仍在使用C2DM - 处理是为所有消息限制/退避发送.甚至更好 - 迁移到没有此全局配额的GCM.