Unity 连接ws,不用任何插件,忙活了一天终于搞定了,一直连接不上,原来是没有添加header,
代码比较简单,直接贴出来普度众生
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
35
36
37
38
39
using
System;
using
System.Net.WebSockets;
using
System.Text;
using
System.Threading;
using
UnityEngine;
public
class
NewBehaviourScript : MonoBehaviour
{
private
void
Start()
{
WebSocket();
}
public
async
void
WebSocket()
{
try
{
ClientWebSocket ws =
new
ClientWebSocket();
CancellationToken ct =
new
CancellationToken();
//添加header
//ws.Options.SetRequestHeader("X-Token", "eyJhbGciOiJIUzI1N");
Uri url =
new
Uri(
"ws://121.40.165.18:8800/v1/test/test"
);
await ws.ConnectAsync(url, ct);
await ws.SendAsync(
new
ArraySegment(Encoding.UTF8.GetBytes(
"hello"
)), WebSocketMessageType.Binary,
true
, ct);
//发送数据
while
(
true
)
{
var
result =
new
byte
[1024];
await ws.ReceiveAsync(
new
ArraySegment(result),
new
CancellationToken());
//接受数据
var
str = Encoding.UTF8.GetString(result, 0, result.Length);
Debug.Log(str);
}
}
catch
(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}