创建WebSocket客户端
定义
定义
命名空间:
TouchSocket.Http
TouchSocket.Http.WebSockets
安装:
dotnet add package TouchSocket.Http
一、可配置项
二、支持插件接口
插件方法 | 功能 |
---|---|
IWebSocketHandshakingPlugin | 当收到握手请求之前,可以进行连接验证等 |
IWebSocketHandshakedPlugin | 当成功握手响应之后 |
IWebSocketReceivedPlugin | 当收到Websocket的数据报文 |
IWebSocketClosingPlugin | 当收到关闭请求时,如果对方直接断开连接,此方法则不会触发。 |
IWebSocketClosedPlugin | 当WebSocket连接断开时触发,无论是否正常断开。但如果是断网等操作,可能不会立即执行,需要结合心跳操作和UseCheckClear 插件来进行清理。 |
三、创建客户端
3.1 创建常规客户端
var client = new WebSocketClient();
await client.SetupAsync(new TouchSocketConfig()
.SetRemoteIPHost("ws://127.0.0.1:7789/ws")
.ConfigureContainer(a =>
{
a.AddConsoleLogger();
}));
await client.ConnectAsync();
client.Logger.Info("连接成功");
3.2 创建WSs客户端
当需要连接到由证书机构颁发的网址(例如:小程序、物联网等)时,仅需要设置带有wss
的url即可。
wss://127.0.0.1:7789/ws
当连接自定义证书的Ssl:wss://127.0.0.1:7789/ws
var client = new WebSocketClient();
await client.SetupAsync(new TouchSocketConfig()
.SetRemoteIPHost(new IPHost("wss://127.0.0.1:7789/ws"))
.SetClientSslOption(
new ClientSslOption()
{
ClientCertificates = new X509CertificateCollection() { new X509Certificate2("RRQMSocket.pfx", "RRQMSocket") },
SslProtocols = SslProtocols.Tls12,
TargetHost = "127.0.0.1",
CertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; }
}));
await client.ConnectAsync();
Console.WriteLine("连接成功");
注意