android – GCM / FCM中通知负载的大小

前端之家收集整理的这篇文章主要介绍了android – GCM / FCM中通知负载的大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
此问题最初是指Google Cloud Messaging(GCM),但现在它也适用于取代GCM的新Firebase云消息传递(FCM).

我想知道如何在包含“通知”字典时计算GCM有效负载的大小.

我一直在尝试针对Android的Google Cloud Messaging服务.文档的某些部分说您可以发送最多4KB的数据,而here则说“通知消息最多可以发送2kb的数据”.

做一些测试我可以发送带有4KB数据的“数据”有效载荷的消息,服务器接受它们没有按预期的错误.

但是,使用“通知”有效负载我发现我可以发送超过2KB数据的消息,并且服务器没有返回错误.我预计这样的消息会太大了.

我发现“通知”有效负载与“数据”有效负载共享允许的4KB,但不是以相同的方式.在“数据”有效负载中,您可以通过添加键和值的大小来计算大小. “通知”有效负载占用的空间大于密钥大小和包含的值.

当包含“通知”字典时,如何预先计算有效载荷的大小?

解决方法

我尝试了新的FCM服务的有效载荷大小.

对于包含“数据”字典而没有“通知”字典的消息,我设法发送最多4096个字符(计算所有键和值的长度).

对于包含“通知”字典而没有“数据”字典的消息,以及包含“通知”字典和“数据”字典的消息,我设法发送最多4062个字符.我无法弄清楚剩余的34个字符是如何计算的.

这意味着将“通知”有效负载限制为2K的文档不正确.你可以发送接近4K.

现在,阅读FCM的最新文档,我发现the documentation of Message types说:

Notification messages contain a predefined set of user-visible keys. Data messages,by contrast,contain only your user-defined custom key-value pairs. Notification messages can contain an optional data payload. Maximum payload for both message types is 4KB,except when sending messages from the Firebase console,which enforces a 1024 character limit.

另一方面,the description of the “MessageTooBig” error说:

Check that the total size of the payload data included in a message does not exceed FCM limits: 4096 bytes for most messages,or 2048 bytes in the case of messages to topics. This includes both the keys and the values.

我测试的消息不是主题消息,因此根据两个引号,它们不应限于2K.

因此,根据当前文档的有效负载限制是4K(可能除了主题消息之外,我没有测试).

原文链接:https://www.f2er.com/android/313198.html

猜你在找的Android相关文章