2017-04-03 1 views
0

일부 메시지의 정의가있는 proto 파일이 있습니다. 나는 proto 파일의 시작 부분에 package com.myorganization을 선언했다. 예를 들어 해당 파일에 message A 선언이 있습니다. 그 메시지를 직렬화하면 그 메시지의 수신자는 message A과 같은 정의이지만 다른 패키지와 다른 proto 파일에 있으며 다른 언어를 사용합니다. 수신자가 message A을 deserialize할까요?Protobuf 패키지 선언

답변

0

두 메시지 정의가 같고 예인 경우 작동합니다. 필드 번호가 일치해야합니다. 필드 이름이 다르면 이진 형식과 관련해서는 실제로 중요하지 않습니다.

+0

질문은 실제로 패키지 이름이 protobuf에서 메시지 이름의 일부인지 여부에 관한 것입니다. – maks

+0

이 이름은 바이너리 형식의 일부로 전혀 직렬화되지 않으므로 위의 질문에서 송신자와 수신자가 이름이 무엇이라고 생각하는지는 중요하지 않습니다. 패키지 이름과 메시지 이름은 실제 바이너리 형식이 아닌 코드의 메시지 유형을 나타내는 데 사용됩니다. –

+0

그래서 메시지 구조 만 중요합니까? (유형 및 필드 번호) 하나의 프로토 파일에서도 서로 다른 이름을 가진 두 개의 메시지가있는 경우 서로 다른 메시지를 사용하여 직렬화/역 직렬화 할 수 있습니까? – maks

관련 문제