-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
enhancementNew feature or requestNew feature or request
Description
| template <typename execution_context> struct __rpc_client |
| template <typename execution_context> struct __rpc_server |
rpc功能还是过于简单
- 设置请求超时,或许是这样:
co_await client.call<int>("add", 888, 999) | timeout(3s);- 设置连接/通信异常触发动作,或许是这样:
net::rpc::rpc_server server {std::move(acceptor), [](std::error_code& ec) {...;} };
co_await server.start() | on_error{[](std::error_code& ec) {...;}};
co_await client.call<int>("add", 888, 999) | on_error([](std::error_code& ec) {...;});- 优雅的抑制响应/断开连接
// common definition
enum option_set {
suppress_response_requested = 0,
shut_down_requested,
}
// server side
rpc_server.bind("generic_control", [] (net::rpc::control_token token, int option) -> void
{
if(option == shut_down_requested) token.request_close();
else if (option == shut_down_requested) token.request_noresponse();
return;
});
// client side
co_await rpc_client.call_nonblock<void>("generic_control", option_set::suppress_response_requested);
co_await rpc_client.call_nonblock<void>("generic_control", option_set::shut_down_requested);- 注册中心/分布式服务发现和负载均衡(还不太了解,先不做)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request