pub struct FlareClientBuilder { /* private fields */ }Expand description
Flare 模式客户端构建器
提供完整功能实现的客户端构建器
用户需要实现 MessageListener trait,框架会自动处理消息序列化、压缩、加密和心跳管理
- 压缩/解压
- 加密/解密
- 心跳管理
- 自动重连
Implementations§
Source§impl FlareClientBuilder
impl FlareClientBuilder
Sourcepub fn with_listener(self, listener: Arc<dyn MessageListener>) -> Self
pub fn with_listener(self, listener: Arc<dyn MessageListener>) -> Self
设置消息监听器(必须)
Sourcepub fn with_middleware(self, middleware: ArcMessageMiddleware) -> Self
pub fn with_middleware(self, middleware: ArcMessageMiddleware) -> Self
添加中间件
Sourcepub fn with_processor(self, processor: ArcMessageProcessor) -> Self
pub fn with_processor(self, processor: ArcMessageProcessor) -> Self
添加处理器
Sourcepub fn with_observer(self, observer: Arc<dyn ConnectionObserver>) -> Self
pub fn with_observer(self, observer: Arc<dyn ConnectionObserver>) -> Self
添加连接观察者(可选)
观察者会收到连接事件(Connected、Disconnected、Error、Message)
添加连接观察者
观察者会收到连接事件(Connected、Disconnected、Error、Message)
§示例
use flare_core::client::builder::flare::FlareClientBuilder;
use flare_core::transport::events::{ConnectionObserver, ConnectionEvent};
use std::sync::Arc;
struct MyObserver;
impl ConnectionObserver for MyObserver {
fn on_event(&self, event: &ConnectionEvent) {
match event {
ConnectionEvent::Connected => {
println!("已连接");
}
ConnectionEvent::Disconnected(reason) => {
println!("连接断开: {}", reason);
}
ConnectionEvent::Message(data) => {
// 处理原始消息数据
println!("收到消息: {} bytes", data.len());
}
ConnectionEvent::Error(err) => {
println!("连接错误: {:?}", err);
}
}
}
}
let builder = FlareClientBuilder::new("ws://127.0.0.1:8080")
.with_observer(Arc::new(MyObserver));Sourcepub fn with_protocol(self, protocol: TransportProtocol) -> Self
pub fn with_protocol(self, protocol: TransportProtocol) -> Self
设置传输协议
Sourcepub fn with_protocol_race(self, protocols: Vec<TransportProtocol>) -> Self
pub fn with_protocol_race(self, protocols: Vec<TransportProtocol>) -> Self
启用多协议竞速
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_user_id(self, user_id: String) -> Self
pub fn with_user_id(self, user_id: String) -> Self
设置用户 ID
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 force_format(self, format: SerializationFormat) -> Self
pub fn force_format(self, format: SerializationFormat) -> Self
强制指定序列化格式
Sourcepub fn force_compression(self, compression: CompressionAlgorithm) -> Self
pub fn force_compression(self, compression: CompressionAlgorithm) -> Self
强制指定压缩算法
Sourcepub fn with_device_info(self, device_info: DeviceInfo) -> Self
pub fn with_device_info(self, device_info: DeviceInfo) -> 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_race_timeout(self, timeout: Duration) -> Self
pub fn with_race_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, attempts: Option<u32>) -> Self
pub fn with_max_reconnect_attempts(self, attempts: Option<u32>) -> Self
设置最大重连次数
Sourcepub fn with_token(self, token: String) -> Self
pub fn with_token(self, token: String) -> Self
设置 Token(用于认证)
Sourcepub fn enable_router(self) -> Self
pub fn enable_router(self) -> Self
启用消息路由
Sourcepub async fn build_with_race(self) -> Result<FlareClient>
pub async fn build_with_race(self) -> Result<FlareClient>
构建客户端(使用协议竞速)
Auto Trait Implementations§
impl !RefUnwindSafe for FlareClientBuilder
impl !UnwindSafe for FlareClientBuilder
impl Freeze for FlareClientBuilder
impl Send for FlareClientBuilder
impl Sync for FlareClientBuilder
impl Unpin for FlareClientBuilder
impl UnsafeUnpin for FlareClientBuilder
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more