服务配置
2025年8月17日大约 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(Duration::from_millis(10)).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;