服务配置
2025/11/29大约 2 分钟hyperlanewebrustconfigServerConfighostporthttp_bufferws_bufferlingernodelayttlconfig_strconfig
设置 host
提示
hyperlane 框架绑定 host 方式如下:
let config: ServerConfig = ServerConfig::new().await;
config.host("0.0.0.0").await;设置 port
提示
hyperlane 框架绑定端口方式如下:
let config: ServerConfig = ServerConfig::new().await;
config.port(60000).await;设置 http_buffer
提示
hyperlane 框架设置 HTTP 缓冲区大小方式如下(不设置或者设置为 0 则默认是 4096 字节):
let config: ServerConfig = ServerConfig::new().await;
config.http_buffer(4096).await;设置 ws_buffer
提示
hyperlane 框架设置 websocket 缓冲区大小方式如下: 不设置或者设置为 0 则默认是 4096 字节。
server.ws_buffer(4096).await;设置 linger
提示
hyperlane 框架支持配置 linger,该选项基于 Tokio 的 TcpStream::set_linger,用于控制 SO_LINGER 选项,以决定连接关闭时未发送数据的处理方式,从而影响连接终止时的行为。
设置 linger
let config: ServerConfig = ServerConfig::new().await;
config.linger(Some(Duration::from_millis(10))).await;开启 linger
let config: ServerConfig = ServerConfig::new().await;
config.enable_linger(Duration::from_millis(10)).await;关闭 linger
let config: ServerConfig = ServerConfig::new().await;
config.disable_linger().await;设置 nodelay
提示
hyperlane 框架支持配置 nodelay,该选项基于 Tokio 的 TcpStream::set_nodelay,用于控制 TCP_NODELAY 选项,以减少 Nagle 算法的影响,提高低延迟场景下的数据传输效率。
启用 nodelay
let config: ServerConfig = ServerConfig::new().await;
config.enable_nodelay().await;let config: ServerConfig = ServerConfig::new().await;
config.nodelay(true).await;禁用 nodelay
let config: ServerConfig = ServerConfig::new().await;
config.disable_nodelay().await;let config: ServerConfig = ServerConfig::new().await;
config.nodelay(false).await;设置 ttl
提示
hyperlane 框架支持配置 ttl,该选项基于 Tokio 的 TcpStream::set_ttl,用于控制 IP_TTL 选项,以设置传输数据包的生存时间(Time To Live),从而影响数据包在网络中的跳数限制。
let config: ServerConfig = ServerConfig::new().await;
config.ttl(128).await;设置 config_str
提示
hyperlane 框架支持直接传入配置字符串。
let config_str: &'static str = r#"
{
"host": "0.0.0.0",
"port": 80,
"ws_buffer": 4096,
"http_buffer": 4096,
"nodelay": true,
"linger": { "secs": 64, "nanos": 0 },
"ttl": 64
}
"#;
server.config_str(config_str).await;设置 config
let config_str: &'static str = r#"
{
"host": "0.0.0.0",
"port": 80,
"ws_buffer": 4096,
"http_buffer": 4096,
"nodelay": true,
"linger": { "secs": 64, "nanos": 0 },
"ttl": 64
}
"#;
let config: ServerConfig = ServerConfig::from_str(config_str).unwrap();
server.config(config).await;加载中...