pub struct ConnectionInfo {Show 15 fields
pub connection_id: String,
pub user_id: Option<String>,
pub created_at: u64,
pub last_active: u64,
pub metadata: HashMap<String, String>,
pub device_info: Option<DeviceInfo>,
pub serialization_format: SerializationFormat,
pub compression: CompressionAlgorithm,
pub encryption: EncryptionAlgorithm,
pub authenticated: bool,
pub authenticated_at: Option<u64>,
pub negotiation_completed: bool,
pub negotiation_confirmed: bool,
pub cached_parser: Option<Arc<MessageParser>>,
pub cached_pipeline: Option<Arc<MessagePipeline>>,
}Expand description
连接信息(Trait 版本,用于跨异步边界传递)
Fields§
§connection_id: String连接 ID(唯一标识符)
user_id: Option<String>用户 ID(如果已认证)
created_at: u64创建时间戳(Unix 时间戳,秒)
last_active: u64最后活跃时间戳(Unix 时间戳,秒)
metadata: HashMap<String, String>连接元数据
device_info: Option<DeviceInfo>设备信息(如果已提供)
serialization_format: SerializationFormat序列化格式(由客户端协商决定)
compression: CompressionAlgorithm压缩算法(由客户端协商决定)
encryption: EncryptionAlgorithm加密方式(由客户端协商决定)
authenticated: bool是否已验证(如果启用认证,只有已验证的连接才能收发消息)
authenticated_at: Option<u64>认证时间戳(Unix 时间戳,秒,如果已验证)
negotiation_completed: bool协商是否已完成(CONNECT 和 CONNECT_ACK 完成)
negotiation_confirmed: bool协商是否已确认(客户端收到 CONNECT_ACK 后发送确认,服务端收到后标记) 确认后,消息必须严格按照协商好的方式处理,不再容错
cached_parser: Option<Arc<MessageParser>>缓存的 MessageParser(协商完成后创建,避免每次消息处理都创建新的 parser)
cached_pipeline: Option<Arc<MessagePipeline>>缓存的 MessagePipeline(协商完成后创建,如果配置了中间件或处理器) 可选,默认不创建以保持性能
Trait Implementations§
Source§impl Clone for ConnectionInfo
impl Clone for ConnectionInfo
Source§fn clone(&self) -> ConnectionInfo
fn clone(&self) -> ConnectionInfo
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for ConnectionInfo
impl !UnwindSafe for ConnectionInfo
impl Freeze for ConnectionInfo
impl Send for ConnectionInfo
impl Sync for ConnectionInfo
impl Unpin for ConnectionInfo
impl UnsafeUnpin for ConnectionInfo
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