簡體   English   中英

通過HTTP發送多個協議緩沖區

[英]Sending Multiple Protocol Buffers over HTTP

在我的應用程序中,我必須以結果列表作為協議緩沖區來響應請求。 該列表可能很長,這意味着如果一次將所有內容都保存在內存中,則可能會占用發送者和接收者的大量內存。

一種選擇是分頁,但是這需要跟蹤頁面。 我寧願以分塊編碼的形式對其進行流式處理。 我希望發送方能夠序列化大量數據,發送並忘記它,並且我希望接收方能夠接收一些數據,反序列化並處理它,而無需任何一方記憶中的一切。

我的問題是,客戶端如何知道一個協議緩沖區在哪里結束而下一個協議緩沖區在哪里開始? 此信息是否在協議緩沖區內,還是我需要自己創建某種划界方案?

在協議緩沖區消息本身內部沒有有關消息大小的信息 因此,您需要自己為每個塊添加一個長度前綴。

一種常用的方法是添加使用varint編碼的長度前綴。 有關如何在C ++中完成此操作的詳細信息,請參見此答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM