taolib.testing.config_center.server.websocket.protocols#

推送服务 Protocol 接口定义模块。

定义消息缓冲、在线状态追踪和连接管理的抽象接口, 遵循现有 ConfigCacheProtocol 模式实现依赖注入和测试解耦。

Classes#

MessageBufferProtocol

离线消息缓冲协议。

PresenceTrackerProtocol

用户在线状态追踪协议。

ConnectionManagerProtocol

WebSocket 连接管理器协议。

Module Contents#

class taolib.testing.config_center.server.websocket.protocols.MessageBufferProtocol#

Bases: Protocol

离线消息缓冲协议。

async push(user_id: str, message: taolib.testing.config_center.server.websocket.models.PushMessage) None#

缓冲一条用户离线消息。

async push_to_channel(channel: str, message: taolib.testing.config_center.server.websocket.models.PushMessage) None#

缓冲一条频道消息(供 HTTP 轮询使用)。

async flush(user_id: str, limit: int = 100) list[taolib.testing.config_center.server.websocket.models.PushMessage]#

取出并清除用户的离线消息。

async get_recent(channel: str, since: datetime.datetime, limit: int = 50) list[taolib.testing.config_center.server.websocket.models.PushMessage]#

获取频道自指定时间以来的消息(HTTP 轮询用)。

class taolib.testing.config_center.server.websocket.protocols.PresenceTrackerProtocol#

Bases: Protocol

用户在线状态追踪协议。

async set_online(user_id: str, instance_id: str) None#

标记用户在线。

async set_offline(user_id: str, instance_id: str) None#

标记用户离线。

async get_status(user_id: str) taolib.testing.config_center.server.websocket.models.UserPresence | None#

获取用户在线状态。

async get_all_online() list[taolib.testing.config_center.server.websocket.models.UserPresence]#

获取所有在线用户。

class taolib.testing.config_center.server.websocket.protocols.ConnectionManagerProtocol#

Bases: Protocol

WebSocket 连接管理器协议。

async broadcast(channel: str, message: taolib.testing.config_center.server.websocket.models.PushMessage) int#

向频道广播消息,返回投递成功的连接数。

async send_to_user(user_id: str, message: taolib.testing.config_center.server.websocket.models.PushMessage) int#

向特定用户发送消息,返回投递成功的连接数。

get_stats() taolib.testing.config_center.server.websocket.models.ConnectionStats#

获取连接统计信息。