Skip to content

Commit 3bdf187

Browse files
committed
fix integration tests
1 parent b1ff8e2 commit 3bdf187

File tree

5 files changed

+49
-13
lines changed

5 files changed

+49
-13
lines changed

src/SocketIOClient.Test/SocketIOTests/OffTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public async virtual Task Test()
2525
await Task.Delay(200);
2626
Assert.AreEqual($"{SocketIOCreator.Prefix}.net core", result);
2727
Assert.AreEqual(1, hiCount);
28+
await Task.Delay(200);
2829

2930
client.Off("hi");
3031
await client.EmitAsync("hi", ".net core 1");

src/SocketIOClient/Messages/ErrorMessage.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,21 @@ public class ErrorMessage : IMessage
2525

2626
public void Read(string msg)
2727
{
28-
int index = msg.IndexOf('{');
29-
if (index > 0)
28+
if (Eio == 3)
3029
{
31-
Namespace = msg.Substring(0, index - 1);
32-
msg = msg.Substring(index);
30+
Message = msg.Trim('"');
31+
}
32+
else
33+
{
34+
int index = msg.IndexOf('{');
35+
if (index > 0)
36+
{
37+
Namespace = msg.Substring(0, index - 1);
38+
msg = msg.Substring(index);
39+
}
40+
var doc = JsonDocument.Parse(msg);
41+
Message = doc.RootElement.GetProperty("message").GetString();
3342
}
34-
var doc = JsonDocument.Parse(msg);
35-
Message = doc.RootElement.GetProperty("message").GetString();
3643
}
3744

3845
public string Write()

src/SocketIOClient/Transport/TransportRouter.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public async Task ConnectAsync()
8080
if (openedMessage.Upgrades.Contains("websocket") && _options.AutoUpgrade)
8181
{
8282
_clientWebSocket = _clientWebSocketProvider();
83-
_webSocketTransport = new WebSocketTransport(_clientWebSocket)
83+
_webSocketTransport = new WebSocketTransport(_clientWebSocket, Eio)
8484
{
8585
ConnectionTimeout = _options.ConnectionTimeout
8686
};
@@ -233,6 +233,10 @@ private async void OnTextReceived(string text)
233233
}
234234
_ = Task.Factory.StartNew(PingAsync, TaskCreationOptions.LongRunning);
235235
}
236+
else
237+
{
238+
return;
239+
}
236240
}
237241
else if (msg.Type == MessageType.Pong)
238242
{

src/SocketIOClient/Transport/WebSocketTransport.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ namespace SocketIOClient.Transport
99
{
1010
public class WebSocketTransport : IReceivable, IDisposable
1111
{
12-
public WebSocketTransport(IClientWebSocket ws)
12+
public WebSocketTransport(IClientWebSocket ws, int eio)
1313
{
14+
_eio = eio;
1415
_ws = ws;
1516
ReceiveChunkSize = 1024 * 8;
1617
SendChunkSize = 1024 * 8;
@@ -27,6 +28,7 @@ public WebSocketTransport(IClientWebSocket ws)
2728
public Action<byte[]> OnBinaryReceived { get; set; }
2829
public Action<Exception> OnAborted { get; set; }
2930

31+
readonly int _eio;
3032
readonly IClientWebSocket _ws;
3133
readonly CancellationTokenSource _listenCancellation;
3234

@@ -53,7 +55,17 @@ public async Task DisconnectAsync(CancellationToken cancellationToken)
5355
/// <exception cref="TaskCanceledException"></exception>
5456
public async Task SendAsync(byte[] bytes, CancellationToken cancellationToken)
5557
{
56-
await SendAsync(WebSocketMessageType.Binary, bytes, cancellationToken);
58+
if (_eio == 3)
59+
{
60+
byte[] buffer = new byte[bytes.Length + 1];
61+
buffer[0] = 4;
62+
Buffer.BlockCopy(bytes, 0, buffer, 1, bytes.Length);
63+
await SendAsync(WebSocketMessageType.Binary, buffer, cancellationToken);
64+
}
65+
else
66+
{
67+
await SendAsync(WebSocketMessageType.Binary, bytes, cancellationToken);
68+
}
5769
}
5870

5971
private async Task SendAsync(WebSocketMessageType type, byte[] bytes, CancellationToken cancellationToken)
@@ -135,8 +147,17 @@ private async Task ListenAsync()
135147
OnTextReceived(text);
136148
break;
137149
case WebSocketMessageType.Binary:
138-
byte[] bytes = new byte[count];
139-
Buffer.BlockCopy(buffer, 0, bytes, 0, bytes.Length);
150+
byte[] bytes;
151+
if (_eio == 3)
152+
{
153+
bytes = new byte[count - 1];
154+
Buffer.BlockCopy(buffer, 1, bytes, 0, bytes.Length);
155+
}
156+
else
157+
{
158+
bytes = new byte[count];
159+
Buffer.BlockCopy(buffer, 0, bytes, 0, bytes.Length);
160+
}
140161
OnBinaryReceived(bytes);
141162
break;
142163
case WebSocketMessageType.Close:

src/socket.io-server-v2/app.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,19 @@ io.on('connection', socket => {
2525
socket.emit('hi', prefix + msg);
2626
});
2727

28+
socket.on('headers', cb => {
29+
cb(socket.request.headers)
30+
});
31+
2832
socket.on('welcome', () => {
29-
socket.emit('welcome', Buffer.from("welcome " + socket.id, 'utf8'));
33+
socket.emit('welcome', Buffer.from("welcome " + socket.id, 'utf8'), Buffer.from("test", 'utf8'));
3034
});
3135

3236
socket.on("no params", () => {
3337
socket.emit("no params");
3438
});
3539

3640
socket.on("1 params", p1 => {
37-
console.log(p1);
3841
socket.emit("1 params", p1);
3942
});
4043

0 commit comments

Comments
 (0)