web-dev-qa-db-fra.com

GCM - Longueur maximale pour l'ID d'enregistrement

Update:GCM est obsolète, utilisez FCM

Quelle est la longueur maximale d'un ID d'enregistrement émis par les serveurs GCM? La documentation de GCM ne fournit pas cette information. Googler pour cela révèle que l'ID d'enregistrement n'est pas de longueur fixe et peut aller jusqu'à 4K (4096 octets) de longueur. Mais ce ne sont pas des réponses officielles de Google. Je reçois actuellement des identifiants d'enregistrement de 162 caractères. Quelqu'un peut aider?

47
Raj Chaudhari

Je suis intéressé à savoir à ce sujet aussi. La taille de mon identifiant de registre est de 183 caractères. Je suppose que ce ne sera pas plus long que 512 caractères, encore moins 4K. Imaginez envoyer une notification en masse, un identifiant 4K de registre x 1 000 = une taille de message de 4 Mo! 

En fin de compte, j'utilise simplement le type 'text' dans ma table MySQL pour stocker l'identifiant d'enregistrement. Donc, même si Google m'envoie un identifiant de registre 1K, 2K ou 4K (très peu probable), je serai en mesure de le gérer.

Mise à jour: je suis tombé sur une nouvelle taille d'identifiant de registre: 205.

21
azgolfer

Sur le forum Android-gcm, un développeur de Google confirme c'est 4k 

42
macno

C’est ce qui a été dit dans le document GCM,

Un objet JSON dont les champs représentent les paires clé-valeur des données de charge utile du message. Si présentes, les données utiles seront incluses dans l’intention en tant que données d’application, la clé étant le nom de l’extra. Par exemple, "data": {"score": "3x1"} aurait pour résultat un score d'intention supplémentaire nommé dont la valeur est la chaîne 3x1. 

Il n'y a pas de limite au nombre de paires clé/valeur, bien qu'il y ait une limite à la taille totale du message (4 Ko). Les valeurs peuvent être n'importe quel objet JSON, mais nous vous recommandons d'utiliser des chaînes, car elles seront néanmoins converties en chaînes du serveur GCM. 

Si vous souhaitez inclure des objets ou d'autres types de données non-chaînes (tels que des entiers ou des booléens), vous devez effectuer la conversion en chaîne vous-même. Notez également que la clé ne peut pas être un mot réservé (de ou tout mot commençant par google.). 

Pour compliquer un peu les choses, certains mots réservés (tels que collapse_key) sont techniquement autorisés dans les données utiles. Toutefois, si la demande contient également le mot, la valeur de la demande remplacera la valeur des données utiles. Il est donc déconseillé d'utiliser des mots définis comme noms de champs dans cette table, même dans les cas où ils sont techniquement autorisés. Optionnel.

0
Shaolin