2017-04-11 3 views
0

verfolge ich das Tutorial von http://www.grpc.io/docs/tutorials/basic/node.html#try-it-outDefinieren Sie alle Felder in Proto? Kann es undefinierte Felder ignorieren?

ich wantd zu testen, wie grpc aus dem Protokollpuffer undefiniertes Feld behandelt so geändert ich die route_guide_server.js, Zeile 74, ein zusätzliches Feld test

feature = { 
    name: name, 
    location: point, 
    test: 'test' 
    }; 
    return feature; 
} 

Und dann zurückzukehren Ich habe diesen Fehler auf der Clientseite { Error: .routeguide.Feature#test is not a field: undefined

Ist das das erwartete Verhalten? In meinem Verständnis von protocol buffer doc, sollten unbekannte Felder einfach nicht serialisiert werden, anstatt Fehler zu werfen?

Antwort

0

Protobuf löscht nur Felder bei der Deserialisierung, nicht Serialisierung. Sie können den Unterschied deutlicher sehen, wenn Sie Ihren Client und Ihren Server dazu bringen, etwas unterschiedliche Versionen des gleichen Proto zu verwenden. Der Client sollte das Testfeld enthalten, der Server sollte dies jedoch nicht tun.

Verwandte Themen