2017-04-03 3 views
0

Ich habe eine Proto-Datei mit der Definition einiger Nachrichten. Ich habe am Anfang der Proto-Datei package com.myorganization deklariert. Zum Beispiel gibt es message A Deklaration in dieser Datei. Wenn ich diese Nachricht serialisieren und der Empfänger dieser Nachricht die gleiche Definition von message A haben, befindet sie sich jedoch in einem anderen Paket und in einer anderen Proto-Datei und verwendet wahrscheinlich eine andere Sprache. Würde der Empfänger message A deserialisieren?Protobuf Paket Erklärung

Antwort

0

Wenn die beiden Meldungsdefinitionen identisch sind, dann ja, das wird funktionieren. Es ist wichtig, dass die Feldnummern übereinstimmen. Wenn die Feldnamen unterschiedlich sind, spielt das für das Binärformat keine Rolle.

+0

Frage ist eigentlich, ob der Paketname Teil des Nachrichtennamens in Protobuf ist? – maks

+0

Diese Namen werden überhaupt nicht als Teil des Binärformats serialisiert, und so ist es in der obigen Frage egal, wer der Absender und Empfänger die Namen sind. Der Paketname und der Nachrichtenname werden verwendet, um sich auf die Nachrichtentypen in Ihrem Code zu beziehen, aber nicht im tatsächlichen Binärformat. –

+0

Es kommt also nur auf die Nachrichtenstruktur an (Typen- und Feldnummern) Wenn zwei Nachrichten mit unterschiedlichen Namen sogar in einer Proto-Datei vorhanden sind, können sie mit verschiedenen Nachrichten serialisiert/deserialisiert werden? – maks