我正在尋找使用Google Protobuffers三角洲消息。意思我只想發送我的域對象的改變的值。使用谷歌protobuffer三角洲消息
但是這暴露了與此協議有關的問題。我可以很容易地忽略那些沒有改變的屬性,這會給我們提供一個緊湊的信息。
但是如何將屬性值從_something_
更改爲null
?在協議緩衝區中無法區分這兩種情況。
其他人在這裏做了什麼?我在看幾個不同的解決方案:
一個元屬性添加到所有對象,這是一個int數組。如果任何屬性應該更改爲空,請在此數組中包含字段編號。如果沒有屬性改變,那麼meta屬性被省略,並且不佔用消息中的帶寬。
添加一個元屬性,它是一個位掩碼,但是像選項1中提到的數組一樣工作。這對於客戶來說可能更難理解。
使用我還找不到的標準方式。
BR周杰倫