我正在尝试在现有项目中使用 Cap'n Proto,该项目由通过 UDS 进行通信的客户端和服务器组成。我没有资源(我怀疑它会被接受)来重做所有客户端-服务器 RPC,但我想从 Cap'n Proto 序列化机制中受益。不幸的是,在我看来这是不可能的。
最大的问题是服务器端,它是单线程的(如果多线程没有任何严肃的论据,它将一直如此)并使用它自己的基于轮询的循环。所有事件都被部分读取,服务器无法阻止等待任何事件被完全读取 - 这就是我卡住的地方。我们有自己的协议和类来包装消息,当事件被完全读取时,它们可以消耗文件描述符中的字节并通知,以便服务器可以处理它。我想我已经分析了大多数 Cap'n Proto 接口(序列化、异步序列化),而且似乎没有任何修改就不能以相同的方式使用它。
我真的希望我错过了什么。我有吗?