亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一致的跨平臺 Proto3 序列化/反序列化

一致的跨平臺 Proto3 序列化/反序列化

Go
慕碼人2483693 2023-01-03 14:20:58
我有一個用 proto3 定義的基于 golang 的 GRPC服務syntax = "proto3";對于單個 bool 字段的簡單響應,如果值為false整個消息,則將其序列化為空(零長度)數據有效負載。(正如我懷疑的那樣,將false其視為默認值)同時,根據完全相同的.proto定義構建的節點的 GRPC 客戶端將值解釋為undefined. (雖然true一個非常一致)調試服務器構建響應的方式data, err := encode(s.getCodec(stream.ContentSubtype()), msg)我注意到,stream.ContentSubtype()返回一個空字符串,以便在其中s.getCodec回落到. 它導致在這里進一步編碼一些東西encoding/proto.Nameprotofunc marshalAppend(buf []byte, m Message, deterministic bool) ([]byte, error) {    if m == nil {        return nil, ErrNil    }    mi := MessageV2(m)    nbuf, err := protoV2.MarshalOptions{        Deterministic: deterministic,        AllowPartial:  true,    }.MarshalAppend(buf, mi)這看起來像是真正protoV2的實施。所以我不知道這里真正正確的問題是什么應該stream.ContentSubtype()在通信級別上以某種方式控制以及誰負責(客戶端/服務器)在根據定義生成客戶端/服務器源代碼時是否應遵循任何其他控制步驟/操作.proto。它不會.proto自我概括元數據以輸出一致的來源嗎?/Cloudproto3真的應該通過protoV2實施成功編碼嗎?還有什么可能導致這種不一致的價值觀對待?
查看完整描述

1 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

事實證明,這與配置錯誤無關,而是具體實施的問題。

六天前,它已在porto-gen-ts v0.8.5 中修復

感謝@Brits 的查找


查看完整回答
反對 回復 2023-01-03
  • 1 回答
  • 0 關注
  • 91 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號