pub struct ClientConfig {Show 20 fields
pub server_url: String,
pub transport: TransportProtocol,
pub transports: Option<Vec<TransportProtocol>>,
pub protocol_urls: Option<HashMap<TransportProtocol, String>>,
pub race_timeout: Option<Duration>,
pub serialization_format: SerializationFormat,
pub compression: CompressionAlgorithm,
pub force_serialization_format: Option<SerializationFormat>,
pub force_compression: Option<CompressionAlgorithm>,
pub connect_timeout: Duration,
pub reconnect_interval: Duration,
pub max_reconnect_attempts: Option<u32>,
pub heartbeat: HeartbeatConfig,
pub tls: TlsConfig,
pub connection_id: Option<String>,
pub user_id: Option<String>,
pub metadata: HashMap<String, String>,
pub enable_router: bool,
pub device_info: Option<DeviceInfo>,
pub token: Option<String>,
}Expand description
客户端配置
Fields§
§server_url: String服务器地址(单个协议时使用,多协议时用作默认地址)
transport: TransportProtocol传输协议(单个)
transports: Option<Vec<TransportProtocol>>传输协议列表(用于竞速,如果设置了此列表,transport 将被忽略) 列表顺序就是优先级顺序,前面的优先级更高
protocol_urls: Option<HashMap<TransportProtocol, String>>每个协议的独立地址配置(协议 -> 地址映射) 如果设置了此映射,每个协议将使用对应的地址
race_timeout: Option<Duration>协议竞速超时时间(如果启用多协议竞速)
serialization_format: SerializationFormat序列化格式(首选格式,用于协商)
compression: CompressionAlgorithm压缩算法(首选算法,用于协商)
force_serialization_format: Option<SerializationFormat>强制指定的序列化格式(如果设置,则强制使用此格式,不进行协商) 适用于某些端不支持 protobuf 等格式的场景
force_compression: Option<CompressionAlgorithm>强制指定的压缩算法(如果设置,则强制使用此算法,不进行协商)
connect_timeout: Duration连接超时时间
reconnect_interval: Duration重连间隔
max_reconnect_attempts: Option<u32>最大重连次数(None 表示无限重连)
heartbeat: HeartbeatConfig心跳配置
tls: TlsConfigTLS 配置
connection_id: Option<String>自定义连接 ID(如果为 None,则自动生成)
user_id: Option<String>用户 ID(用于认证)
metadata: HashMap<String, String>额外的元数据
enable_router: bool是否启用消息路由(默认 false)
device_info: Option<DeviceInfo>设备信息(用于协商和设备管理)
token: Option<String>Token(用于认证,如果服务端启用认证,必须提供)
Implementations§
Source§impl ClientConfig
impl ClientConfig
Sourcepub fn with_format(self, format: SerializationFormat) -> Self
pub fn with_format(self, format: SerializationFormat) -> Self
设置序列化格式
Sourcepub fn with_compression(self, compression: CompressionAlgorithm) -> Self
pub fn with_compression(self, compression: CompressionAlgorithm) -> Self
设置压缩算法
Sourcepub fn with_user_id(self, user_id: String) -> Self
pub fn with_user_id(self, user_id: String) -> Self
设置用户 ID
Sourcepub fn with_token(self, token: String) -> Self
pub fn with_token(self, token: String) -> Self
设置 Token(用于认证,如果服务端启用认证,必须提供)
Sourcepub fn with_protocol_race(self, protocols: Vec<TransportProtocol>) -> Self
pub fn with_protocol_race(self, protocols: Vec<TransportProtocol>) -> Self
启用多协议竞速
协议列表的顺序就是优先级顺序,前面的协议优先级更高 例如:with_protocol_race(vec![QUIC, WebSocket]) 表示 QUIC 优先级高于 WebSocket
Sourcepub fn with_protocol_url(self, protocol: TransportProtocol, url: String) -> Self
pub fn with_protocol_url(self, protocol: TransportProtocol, url: String) -> Self
为特定协议设置服务器地址
Sourcepub fn with_protocol_urls(
self,
urls: HashMap<TransportProtocol, String>,
) -> Self
pub fn with_protocol_urls( self, urls: HashMap<TransportProtocol, String>, ) -> Self
批量设置协议地址映射
Sourcepub fn get_protocol_url(&self, protocol: &TransportProtocol) -> String
pub fn get_protocol_url(&self, protocol: &TransportProtocol) -> String
获取指定协议的地址
Sourcepub fn with_race_timeout(self, timeout: Duration) -> Self
pub fn with_race_timeout(self, timeout: Duration) -> Self
设置竞速超时时间
Sourcepub fn with_heartbeat(self, heartbeat: HeartbeatConfig) -> Self
pub fn with_heartbeat(self, heartbeat: HeartbeatConfig) -> Self
设置心跳配置
Sourcepub fn with_connect_timeout(self, timeout: Duration) -> Self
pub fn with_connect_timeout(self, timeout: Duration) -> Self
设置连接超时
Sourcepub fn with_reconnect_interval(self, interval: Duration) -> Self
pub fn with_reconnect_interval(self, interval: Duration) -> Self
设置重连间隔
Sourcepub fn with_max_reconnect_attempts(self, max: Option<u32>) -> Self
pub fn with_max_reconnect_attempts(self, max: Option<u32>) -> Self
设置最大重连次数(None 表示无限重连)
Sourcepub fn enable_router(self) -> Self
pub fn enable_router(self) -> Self
启用消息路由
Sourcepub fn with_device_info(self, device_info: DeviceInfo) -> Self
pub fn with_device_info(self, device_info: DeviceInfo) -> Self
设置设备信息(用于协商和设备管理)
Sourcepub fn force_format(self, format: SerializationFormat) -> Self
pub fn force_format(self, format: SerializationFormat) -> Self
强制指定序列化格式(不进行协商,直接使用此格式)
适用于某些端不支持 protobuf 等格式的场景 如果设置了强制格式,客户端将直接使用此格式,服务端必须接受
Sourcepub fn force_compression(self, compression: CompressionAlgorithm) -> Self
pub fn force_compression(self, compression: CompressionAlgorithm) -> Self
强制指定压缩算法(不进行协商,直接使用此算法)
如果设置了强制压缩,客户端将直接使用此算法,服务端必须接受
Sourcepub fn is_force_format(&self) -> bool
pub fn is_force_format(&self) -> bool
检查是否强制指定了格式(不进行协商)
Sourcepub fn get_serialization_format(&self) -> SerializationFormat
pub fn get_serialization_format(&self) -> SerializationFormat
获取实际使用的序列化格式(强制格式优先,否则使用首选格式)
Sourcepub fn get_compression(&self) -> CompressionAlgorithm
pub fn get_compression(&self) -> CompressionAlgorithm
获取实际使用的压缩算法(强制算法优先,否则使用首选算法)
Sourcepub fn get_protocols(&self) -> Vec<TransportProtocol>
pub fn get_protocols(&self) -> Vec<TransportProtocol>
获取要使用的协议列表
Sourcepub fn is_race_mode(&self) -> bool
pub fn is_race_mode(&self) -> bool
是否启用协议竞速
Trait Implementations§
Source§impl Clone for ClientConfig
impl Clone for ClientConfig
Source§fn clone(&self) -> ClientConfig
fn clone(&self) -> ClientConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more