1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
//创建WebSocket客户端
ClientWebSocket _clientWebSocket = new ClientWebSocket();
//创建目标Uri
Uri uri = new Uri("ws://127.0.0.1:7777");
//建立连接
//对于CancellationToken可以自己New一个
await _clientWebSocket.ConnectAsync(uri,CancellationToken.None);
//如果连接成功 _clientWebSocket的 State就不等于None 做操作前可以判断一下
//使用_clientWebSocket接收消息
//这个字节数组用来存储接收到的数据
byte[] bytes = new byte[1024 * 10];
//接收数据不是直接到位的 不同数据需要隔开所以需要包装一下
ArraySegment<byte> data = new ArraySegment<byte>(bytes);
//要一直接收
while(true)
{
//接收
WebSocketReceiveResult result = await _clientWebSocket.ReceiveAsync(data,CancellationToken.None);
//使用 EndOfMessage属性可以判断是否完整接收
if(result.EndOfMessage)
{
Console.WriteLine(Endoding.UTF-8.GetString(bytes,data.Offset,data.Count));
break;
}
}
//关闭连接
_clientWebSocket.CloseAsync(WebSocketCloseStatus.EndpointUnavailable, "hand" ,CancellationToken.None);
|