2017-04-11 12 views
0

我下面從http://www.grpc.io/docs/tutorials/basic/node.html#try-it-out定義proto中的所有字段?它可以忽略未定義的字段嗎?

教程我wantd來測試GRPC從協議緩衝處理未定義字段,所以我修改route_guide_server.js,線74,以返回的附加字段test

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

然後我在客戶端發生了這個錯誤 { Error: .routeguide.Feature#test is not a field: undefined

這是預期的行爲嗎?根據我對protocol buffer doc的理解,未知字段應該簡單地不是序列化而不是拋出錯誤?

回答

0

Protobuf僅刪除反序列化字段,而不是序列化字段。如果您讓客戶端和服務器使用相同協議的稍微不同的版本,則可以更清楚地看到差異。客戶端應該包含測試字段,但服務器不應該。