创建 Server
2024/12/30小于 1 分钟hyperlanewebrustconfigserver
提示
hyperlane 框架创建服务方式如下,需要调用 run 方法,服务才会正常运行。
ServerControlHook 提供了等待框架运行完成和框架停止运行的 hook
wait:server.run().await.unwrap_or_default().wait().await实现等待框架运行完成shutdown:server.run().await.unwrap_or_default().shutdown().await实现框架停止运行
原生写法
Server::default
let mut server: Server = Server::default();
let server_control_hook: ServerControlHook = server.run().await.unwrap_or_default();
server_control_hook.wait().await;Server::from(ServerConfig)
let server_config: ServerConfig = ServerConfig::new();
let mut server: Server = Server::from(server_config);
let server_control_hook: ServerControlHook = server.run().await.unwrap_or_default();
server_control_hook.wait().await;Server::from(RequestConfig)
let request_config: RequestConfig = RequestConfig::default();
let mut server: Server = Server::from(request_config);
let server_control_hook: ServerControlHook = server.run().await.unwrap_or_default();
server_control_hook.wait().await;属性宏写法
提示
使用 #[hyperlane] 属性宏可以自动创建 Server 实例,并注册 crate 中定义的其他钩子和路由。
use hyperlane::*;
use hyperlane_macros::*;
#[hyperlane(server: Server)]
#[hyperlane(server_config: ServerConfig)]
#[tokio::main]
async fn main() {
server_config.set_nodelay(Some(false));
server.server_config(server_config);
let server_control_hook: ServerControlHook = server.run().await.unwrap_or_default();
server_control_hook.wait().await;
}