using System.Net.WebSockets; namespace CoreAgent.WebSocketTransport.Interfaces; /// /// WebSocket 连接接口 /// 单一职责:负责网络连接管理 /// public interface IWebSocketConnection : IDisposable { /// /// 连接状态 /// WebSocketState State { get; } /// /// 是否已连接 /// bool IsConnected { get; } /// /// 连接 WebSocket 服务器 /// /// 服务器地址 /// 取消令牌 Task ConnectAsync(Uri uri, CancellationToken cancellationToken = default); /// /// 发送消息 /// /// 消息缓冲区 /// 消息类型 /// 是否为消息结束 /// 取消令牌 Task SendAsync(ArraySegment buffer, WebSocketMessageType messageType, bool endOfMessage, CancellationToken cancellationToken = default); /// /// 接收消息 /// /// 接收缓冲区 /// 取消令牌 /// 接收结果 Task ReceiveAsync(ArraySegment buffer, CancellationToken cancellationToken = default); /// /// 关闭连接 /// /// 关闭状态 /// 状态描述 /// 取消令牌 Task CloseAsync(WebSocketCloseStatus closeStatus, string statusDescription, CancellationToken cancellationToken = default); /// /// 强制关闭连接并重新创建WebSocket实例 /// 用于处理CloseReceived状态后无法重连的问题 /// void ForceClose(); }