You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.6 KiB
45 lines
1.6 KiB
2 weeks ago
|
.NET 8 WebSocket 传输接口提示词(IWebSocketTransport.cs)
|
||
|
定义 WebSocket 传输接口,抽象核心功能,支持生产环境的高性能和可维护性。文件建议控制在 200 行以内(预计 < 50 行)。
|
||
|
要求
|
||
|
|
||
|
接口职责:
|
||
|
|
||
|
定义核心操作:连接、发送消息(文本/二进制)、接收消息、关闭连接。
|
||
|
提供状态查询属性:连接状态、队列长度、最后心跳时间。
|
||
|
继承 IDisposable 支持资源释放。
|
||
|
|
||
|
|
||
|
方法和属性:
|
||
|
|
||
|
Task ConnectAsync(CancellationToken cancellationToken): 异步连接 WebSocket 服务器。
|
||
|
Task SendAsync<T>(T message, CancellationToken cancellationToken): 异步发送消息,支持泛型(文本/二进制)。
|
||
|
IAsyncEnumerable<T> ReceiveAsync<T>(CancellationToken cancellationToken): 异步接收消息流,支持泛型。
|
||
|
Task CloseAsync(CancellationToken cancellationToken): 异步关闭连接。
|
||
|
bool IsConnected { get; }: 当前连接状态。
|
||
|
int SendQueueLength { get; }: 发送队列长度。
|
||
|
DateTime? LastHeartbeat { get; }: 最后心跳时间。
|
||
|
|
||
|
|
||
|
设计原则:
|
||
|
|
||
|
依赖倒置:抽象传输行为,便于测试和替换。
|
||
|
单一职责:仅定义接口,不包含实现。
|
||
|
可扩展性:泛型方法支持文本/二进制消息。
|
||
|
|
||
|
|
||
|
生产环境考虑:
|
||
|
|
||
|
方法支持 CancellationToken 实现超时和取消。
|
||
|
属性提供状态监控,增强可观察性。
|
||
|
支持二进制消息,适配复杂场景。
|
||
|
|
||
|
|
||
|
输出要求:
|
||
|
|
||
|
文件名为 IWebSocketTransport.cs,位于 Interfaces 目录。
|
||
|
建议 < 50 行,包含详细注释。
|
||
|
说明每个方法/属性的用途和预期行为。
|
||
|
不包含实现逻辑,仅定义接口。
|
||
|
|
||
|
|