0
我正在嘗試在現有項目中使用Cap'n Proto,該項目由通過UDS進行通信的客戶端和服務器組成。我沒有資源(我懷疑它會被接受)重做所有客戶端 - 服務器RPC,但我想從Cap'n Proto序列化機制中受益。不幸的是,在我看來,這是不可能的。部分閱讀/撰寫Cap'n Proto郵件
最大的問題是服務器端,這是單線程(如果沒有任何嚴重的多線程參數,它將保持這種狀態),並使用它自己的基於輪詢的循環。所有事件都被部分讀取,服務器不能阻止等待任何事件被完全讀取 - 而這正是我卡住的地方。我們有我們自己的協議和類,它們包裝消息,當事件被完全讀取時,它可以消耗來自文件描述符的字節並進行通知,以便服務器可以處理它。我想我已經分析了Cap'n Proto接口的大部分(序列化,異步序列化),看起來,它沒有任何修改就不能以相同的方式使用。
我真的很希望我錯過了一些東西。我有嗎?
謝謝。我真的很感謝代碼作者,他在堆棧溢出中處於活動狀態:) – zoska
expectedSizeInWordsFromPrefix是否也適用於打包消息?我總是得到巨大的數字... – hunyadym
@hunyadym不,它不適用於打包的消息。實現這樣的封裝消息實際上會相當困難。明確地寫一個長度前綴可能會更好。 :/我已經爲此提出了一個問題:https://github.com/capnproto/capnproto/issues/590 –