4 changed files with 17 additions and 73 deletions
@ -1,69 +0,0 @@ |
|||||
using System; |
|
||||
using System.Collections.Generic; |
|
||||
using System.Text; |
|
||||
using TouchSocket.Core; |
|
||||
using TouchSocket.Http; |
|
||||
using TouchSocket.Http.WebSockets; |
|
||||
using TouchSocket.Sockets; |
|
||||
|
|
||||
namespace SunlightAggregationTerminal |
|
||||
{ |
|
||||
public class WebSocketServer |
|
||||
{ |
|
||||
public static async Task WebSocketClient() |
|
||||
{ |
|
||||
using var webSocket = new WebSocketClient(); |
|
||||
webSocket.Connected = (c, e) => |
|
||||
{ |
|
||||
Console.WriteLine("Connected"); |
|
||||
return EasyTask.CompletedTask; |
|
||||
}; |
|
||||
|
|
||||
#region WebSocket客户端使用Received委托接收数据
|
|
||||
|
|
||||
webSocket.Received = (c, e) => |
|
||||
{ |
|
||||
Console.WriteLine(e.DataFrame.ToText()); |
|
||||
return EasyTask.CompletedTask; |
|
||||
}; |
|
||||
|
|
||||
#endregion WebSocket客户端使用Received委托接收数据
|
|
||||
|
|
||||
webSocket.Closed = (c, e) => |
|
||||
{ |
|
||||
Console.WriteLine("Closed"); |
|
||||
return EasyTask.CompletedTask; |
|
||||
}; |
|
||||
|
|
||||
await webSocket.SetupAsync(new TouchSocketConfig() |
|
||||
|
|
||||
.ConfigureContainer(a => |
|
||||
|
|
||||
{ |
|
||||
|
|
||||
a.AddConsoleLogger(); |
|
||||
|
|
||||
}) |
|
||||
.ConfigurePlugins(a => |
|
||||
{ |
|
||||
a.UseReconnection<WebSocketClient>(options => |
|
||||
{ |
|
||||
//设置在线状态轮询时间为5秒钟。
|
|
||||
options.PollingInterval = TimeSpan.FromSeconds(5); |
|
||||
|
|
||||
//使用websocket专门的心跳在线检测。基本逻辑如下:
|
|
||||
//由于设置的PollingInterval为5秒,所以每5秒会检查一下WebSocketClient在线状态。
|
|
||||
//1.每隔pingInterval的时间,发送一次ping报文。
|
|
||||
//2.如果在activeTimeSpan(30秒)内,有数据收发,则也会认为在活。
|
|
||||
options.UseWebSocketCheckAction(activeTimeSpan: TimeSpan.FromSeconds(30), pingInterval: TimeSpan.FromSeconds(5)); |
|
||||
}); |
|
||||
}) |
|
||||
|
|
||||
|
|
||||
.SetRemoteIPHost("http://127.0.0.1:7792/ws")); |
|
||||
|
|
||||
|
|
||||
await webSocket.ConnectAsync(); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue