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 –