我正在尝试在 capnproto 中实现类似 boost 的 connect 函数,它会阻塞并重试直到服务器启动,或者 basic_socket::async_connect 让我实现一个回调来尝试再次连接。
例如,运行以下代码:
auto ioContext = kj::setupAsyncIo();
auto address = ioContext.provider->getNetwork()
.parseAddress("localhost:7500").wait(ioContext.waitScope);
auto connection = address->connect().wait(ioContext.waitScope);
如果服务器关闭,显然会抛出异常。
所以我的问题是:
- 有没有办法注册一个回调来处理连接/连接失败?
- capnproto 中是否有已经启用自动重新连接的内置机制?