2012-12-04 15 views

Odpowiedz

7

Nie obejmuje to identyfikatorów rejestracji.

Przykro mi, że nie dostarczyłem żadnej dodatkowej dokumentacji. Dokumentacja GCM nie określa tego jasno. Przetestowałem go jednak w celu zweryfikowania tego zachowania. Jedynym "dowodem", jaki mogę dostarczyć jest to, że w wiadomości multiemisji można uwzględnić do 1000 identyfikatorów rejestracji. 1000 identyfikatorów rejestracyjnych oczywiście nie mieści się w 4096 bajtach ładunku.

Od http://developer.android.com/google/gcm/gcm.html:

registration_ids

tablicy ciągów z listy urządzeń (rejestracja IDS) otrzymujących wiadomość. Musi zawierać co najmniej 1 i maksymalnie 1000 identyfikatorów rejestracji. Aby wysłać wiadomość multiemisji, musisz użyć JSON. W celu wysłania pojedynczej wiadomości do jednego urządzenia można użyć obiektu JSON z tylko jednym identyfikatorem rejestracji lub zwykłym tekstem (patrz poniżej). Wymagany.

+0

. Nie jestem pewien. czy Google nie będzie liczyć identyfikatora registration_id w polu danych ładunku.no dokument refered.in skrzynka gcm znajduję wiadomość z ładunkiem podobnym do użytkownika: { "registration_id": "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx ...", "data": { "Nick": "Mario", "Tekst": "świetny mecz!", "Pokój": "PortugalVSDenmark", }, } – user1556497

+0

W podanym przykładzie długość ładunku wynosi 4 + 5 + 4 + 12 + 4 + 16 (długości nazw pól i wartości). Możesz to sprawdzić samodzielnie, próbując zastąpić je jedną parą klucz/wartość, gdzie długość klucza + długość wartości = 4096. Zobaczysz, że wiadomość zostanie wysłana. Następnie możesz dodać pojedynczy znak i zobaczyć, że wiadomość zostanie odrzucona. Jedyne zastrzeżenie, o którym muszę wspomnieć, to to, że testowałem je tylko dla prostego formatu, a nie dla JSON, ale oczekuję, że zachowają się tak samo. – Eran

0

Aby ukończyć zaakceptowaną odpowiedź. Testowałem to i wynik jest następujący:

Maksymalna długość ładunku wynosi 4096 bajtów. Jeśli używasz JSON, a wiadomość jest następująca:

{ 
    "to" : "APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A", 
    "data": {"a":"Some information. Only this part inside data counts as payload"} 
} 

Tylko część wiadomości, że liczy się jako ładunek jest częścią wewnątrz „danych”. Jest to prawdą, nawet jeśli wysyłasz na wiele urządzeń.

{ 
    "registration_ids" : ["APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A", 
         "APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A"] 
    "data": {"a":"Some information. Only this part inside data counts as payload"} 
} 
Powiązane problemy