Skip to content

Commit 207b906

Browse files
authored
Merge pull request #3 from yoshd/feature/binary_only
Fix to always send messages as binary type
2 parents 4040c9a + d9c2721 commit 207b906

File tree

5 files changed

+16
-21
lines changed

5 files changed

+16
-21
lines changed

Assets/Runtime/Internal/IWebSocketClient.cs

+2-4
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@ internal interface IWebSocketClient : IDisposable
99
{
1010
UniTask ConnectAsync(Uri uri, CancellationToken cancellationToken);
1111

12-
UniTask SendAsync(ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage,
13-
CancellationToken cancellationToken);
12+
UniTask SendAsync(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken);
1413

15-
UniTask SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage,
16-
CancellationToken cancellationToken);
14+
UniTask SendAsync(ArraySegment<byte> buffer, CancellationToken cancellationToken);
1715

1816
UniTask<ValueWebSocketReceiveResult> ReceiveAsync(Memory<byte> buffer, CancellationToken cancellationToken);
1917

Assets/Runtime/Internal/WebSocketClientNonWebGL.cs

+4-6
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,14 @@ public async UniTask ConnectAsync(Uri uri, CancellationToken cancellationToken)
1414
await _client.ConnectAsync(uri, cancellationToken).ConfigureAwait(false);
1515
}
1616

17-
public async UniTask SendAsync(ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage,
18-
CancellationToken cancellationToken)
17+
public async UniTask SendAsync(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken)
1918
{
20-
await _client.SendAsync(buffer, messageType, endOfMessage, cancellationToken).ConfigureAwait(false);
19+
await _client.SendAsync(buffer, WebSocketMessageType.Binary, true, cancellationToken).ConfigureAwait(false);
2120
}
2221

23-
public async UniTask SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage,
24-
CancellationToken cancellationToken)
22+
public async UniTask SendAsync(ArraySegment<byte> buffer, CancellationToken cancellationToken)
2523
{
26-
await _client.SendAsync(buffer, messageType, endOfMessage, cancellationToken).ConfigureAwait(false);
24+
await _client.SendAsync(buffer, WebSocketMessageType.Binary, true, cancellationToken).ConfigureAwait(false);
2725
}
2826

2927
public async UniTask<ValueWebSocketReceiveResult> ReceiveAsync(Memory<byte> buffer,

Assets/Runtime/Internal/WebSocketClientWebGL.cs

+3-5
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ public async UniTask ConnectAsync(Uri uri, CancellationToken cancellationToken)
4343
} while (State is WebSocketState.Connecting);
4444
}
4545

46-
public UniTask SendAsync(ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage,
47-
CancellationToken cancellationToken)
46+
public UniTask SendAsync(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken)
4847
{
4948
unsafe
5049
{
@@ -57,10 +56,9 @@ public UniTask SendAsync(ReadOnlyMemory<byte> buffer, WebSocketMessageType messa
5756
return UniTask.CompletedTask;
5857
}
5958

60-
public UniTask SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage,
61-
CancellationToken cancellationToken)
59+
public UniTask SendAsync(ArraySegment<byte> buffer, CancellationToken cancellationToken)
6260
{
63-
return SendAsync(buffer.AsMemory(), messageType, endOfMessage, cancellationToken);
61+
return SendAsync(buffer.AsMemory(), cancellationToken);
6462
}
6563

6664
public async UniTask<ValueWebSocketReceiveResult> ReceiveAsync(Memory<byte> buffer,

Assets/Runtime/WebSocketClient.cs

+4-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace UnityWebSocket
77
{
88
public class WebSocketClient : IDisposable
99
{
10-
private IWebSocketClient _client;
10+
private readonly IWebSocketClient _client;
1111

1212
public WebSocketClient()
1313
{
@@ -23,16 +23,15 @@ public async UniTask ConnectAsync(Uri uri, CancellationToken cancellationToken)
2323
await _client.ConnectAsync(uri, cancellationToken);
2424
}
2525

26-
public async UniTask SendAsync(ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage,
27-
CancellationToken cancellationToken)
26+
public async UniTask SendAsync(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken)
2827
{
29-
await _client.SendAsync(buffer, messageType, endOfMessage, cancellationToken);
28+
await _client.SendAsync(buffer, cancellationToken);
3029
}
3130

3231
public async UniTask SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage,
3332
CancellationToken cancellationToken)
3433
{
35-
await _client.SendAsync(buffer, messageType, endOfMessage, cancellationToken);
34+
await _client.SendAsync(buffer, cancellationToken);
3635
}
3736

3837
public async UniTask<ValueWebSocketReceiveResult> ReceiveAsync(Memory<byte> buffer,

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ Unity WebGL has the limitation that the browser cannot handle the socket API dir
1313

1414
You can add `"com.yoshd.unitywebsocket": "https://github.com/yoshd/UnityWebSocket.git"` to your `manifest.json` .
1515

16+
Messages are always sent in binary type.
17+
1618
```cs
1719
using UnityWebSocket;
1820

1921
async UniTask SampleAsync()
2022
{
2123
var client = new WebSocketClient();
2224
var msg = System.Text.Encoding.UTF8.GetBytes("Hello!");
23-
await client.SendAsync(msg.AsMemory(), WebSocketMessageType.Binary, true, CancellationToken.None);
25+
await client.SendAsync(msg.AsMemory(), CancellationToken.None);
2426
var buf = new Memory<byte>(new byte[1024]);
2527
var r = await client.ReceiveAsync(buf, CancellationToken.None);
2628
await client.CloseAsync(WebSocketCloseStatus.NormalClosure, "close", CancellationToken.None);

0 commit comments

Comments
 (0)