创建WebSocket客户端
定义
定义
命名空间:
TouchSocket.Http
TouchSocket.Http.WebSockets
安装:
dotnet add package TouchSocket.Http
一、说明
WebSocketClient
是WebSocket系客户端基类,它直接参与WebSocket的连接、握手、发送、接收、处理、断开等。它基于HTTP协议升级而来,与服务器的HttpSessionClient
中的WebSocket
实例是一一对应的通信关系。
二、特点
- 简单易用,支持ws和wss协议。
- 支持自定义握手请求头。
- 内置心跳机制(Ping/Pong)。
- 支持文本和二进制数据传输。
- 支持大数据包的中继传输。
- 支持断线重连机制。
- 内存池支持,高性能处理。
- 基于委托、插件驱动,支持AOP编程。
三、产品应用场景
- 实时通信应用:聊天室、在线客服、即时消息推送。
- 在线协作:多人在线编辑、实时数据同步。
- 物联网通信:设备状态监控、远程控制。
- 游戏开发:实时游戏数据交换。
- 金融交易:实时股票行情、交易数据推送。
- 实时监控:系统监控、数据大屏展示。
四、可配置项
WebSocketClient
继承自HttpClient,所以支持所有HttpClient的配置项,无特有配置。
五、支持插件接口
插件方法 | 功能 |
---|---|
IWebSocketConnectingPlugin | 当收到握手请求之前,可以进行连接验证、自定义请求头等 |
IWebSocketConnectedPlugin | 当成功握手响应之后触发 |
IWebSocketReceivedPlugin | 当收到WebSocket的数据报文时触发 |
IWebSocketClosingPlugin | 当收到关闭请求时触发,如果对方直接断开连接,此方法则不会触发 |
IWebSocketClosedPlugin | 当WebSocket连接断开时触发,无论是否正常断开。但如果是断网等操作,可能不会立即执行,需要结合心跳操作和CheckClear插件来进行清理 |
六、创建WebSocket客户端
6.1 简单创建
简单的处理逻辑可通过Received等委托直接实现。
🔄 正在加载代码...
6.2 继承实现
一般继承实现的话,可以从WebSocketClient
继承。
🔄 正在加载代码...
6.3 创建WSS客户端
当需要连接到由证书机构颁发的网址(例如:小程序、物联网等)时,仅需要设置带有wss
的url即可。当需要连接到自签名证书的网站时,则需要额外设置,详情请参考HttpClient证书配置。
七、连接服务器
WebSocketClient
可以使用默认配置直接连接到服务器,同时也支持使用多种方法定义连接。