Skip to content

Commit

Permalink
test: add more test for binary
Browse files Browse the repository at this point in the history
  • Loading branch information
doghappy committed Jan 12, 2021
1 parent 78636c7 commit 2a15b44
Show file tree
Hide file tree
Showing 7 changed files with 157 additions and 46 deletions.
7 changes: 7 additions & 0 deletions src/SocketIOClient.Test/Models/BinaryObjectResponse.cs
@@ -0,0 +1,7 @@
namespace SocketIOClient.Test.Models
{
class BinaryObjectResponse
{
public byte[] Data { get; set; }
}
}
49 changes: 35 additions & 14 deletions src/SocketIOClient.Test/SocketIOTests/EmitTest.cs
Expand Up @@ -67,9 +67,9 @@ public async Task AckTest()
}

[TestMethod]
public async Task BinaryEventTest()
public async Task BinaryTest()
{
ByteResponse result = null;
string result = null;
var client = new SocketIO(ConnectAsyncTest.URL, new SocketIOOptions
{
Reconnection = false,
Expand All @@ -78,27 +78,48 @@ public async Task BinaryEventTest()
{ "token", "io" }
}
});
client.On("bytes", response => result = response.GetValue<ByteResponse>());
client.On("binary", response =>
{
var bytes = response.GetValue<byte[]>();
result = Encoding.UTF8.GetString(bytes);
});
client.OnConnected += async (sender, e) =>
{
await client.EmitAsync("binary", "return all the characters");
};
await client.ConnectAsync();
await Task.Delay(200);
await client.DisconnectAsync();

const string dotNetCore = ".net core";
const string client001 = "client001";
const string name = "unit test";
Assert.AreEqual("return all the characters", result);
}

client.OnConnected += async (sender, e) =>
[TestMethod]
public async Task BinaryObjTest()
{
string result = null;
var client = new SocketIO(ConnectAsyncTest.URL, new SocketIOOptions
{
await client.EmitAsync("bytes", name, new
Reconnection = false,
Query = new Dictionary<string, string>
{
source = client001,
bytes = Encoding.UTF8.GetBytes(dotNetCore)
});
{ "token", "io" }
}
});
client.On("binary-obj", response =>
{
var data = response.GetValue<BinaryObjectResponse>();
result = Encoding.UTF8.GetString(data.Data);
});
client.OnConnected += async (sender, e) =>
{
await client.EmitAsync("binary-obj", "return all the characters");
};
await client.ConnectAsync();
await Task.Delay(200);
await client.DisconnectAsync();

Assert.AreEqual("client001", result.ClientSource);
Assert.AreEqual("server", result.Source);
Assert.AreEqual($"{dotNetCore} - server - {name}", Encoding.UTF8.GetString(result.Buffer));
Assert.AreEqual("return all the characters", result);
}

[TestMethod]
Expand Down
49 changes: 35 additions & 14 deletions src/SocketIOClient.Test/SocketIOTests/NspEmitTest.cs
Expand Up @@ -66,9 +66,9 @@ public async Task EventAckTest()
}

[TestMethod]
public async Task BinaryEventTest()
public async Task BinaryTest()
{
ByteResponse result = null;
string result = null;
var client = new SocketIO(ConnectAsyncTest.NSP_URL, new SocketIOOptions
{
Reconnection = false,
Expand All @@ -77,27 +77,48 @@ public async Task BinaryEventTest()
{ "token", "io" }
}
});
client.On("bytes", response => result = response.GetValue<ByteResponse>());
client.On("binary", response =>
{
var bytes = response.GetValue<byte[]>();
result = Encoding.UTF8.GetString(bytes);
});
client.OnConnected += async (sender, e) =>
{
await client.EmitAsync("binary", "return all the characters");
};
await client.ConnectAsync();
await Task.Delay(200);
await client.DisconnectAsync();

const string dotNetCore = ".net core";
const string client001 = "client001";
const string name = "unit test";
Assert.AreEqual("return all the characters", result);
}

client.OnConnected += async (sender, e) =>
[TestMethod]
public async Task BinaryObjTest()
{
string result = null;
var client = new SocketIO(ConnectAsyncTest.NSP_URL, new SocketIOOptions
{
await client.EmitAsync("bytes", name, new
Reconnection = false,
Query = new Dictionary<string, string>
{
source = client001,
bytes = Encoding.UTF8.GetBytes(dotNetCore)
});
{ "token", "io" }
}
});
client.On("binary-obj", response =>
{
var data = response.GetValue<BinaryObjectResponse>();
result = Encoding.UTF8.GetString(data.Data);
});
client.OnConnected += async (sender, e) =>
{
await client.EmitAsync("binary-obj", "return all the characters");
};
await client.ConnectAsync();
await Task.Delay(200);
await client.DisconnectAsync();

Assert.AreEqual("client001", result.ClientSource);
Assert.AreEqual("server", result.Source);
Assert.AreEqual($"{dotNetCore} - server - {name}", Encoding.UTF8.GetString(result.Buffer));
Assert.AreEqual("return all the characters", result);
}


Expand Down
50 changes: 36 additions & 14 deletions src/SocketIOClient.Test/SocketIOTests/V3EmitTest.cs
Expand Up @@ -66,9 +66,9 @@ public async Task NspHiTest()
}

[TestMethod]
public async Task BinaryEventTest()
public async Task BinaryTest()
{
ByteResponse result = null;
string result = null;
var client = new SocketIO(ConnectAsyncTest.V4_URL, new SocketIOOptions
{
Reconnection = false,
Expand All @@ -78,27 +78,49 @@ public async Task BinaryEventTest()
{ "token", "v3" }
}
});
client.On("bytes", response => result = response.GetValue<ByteResponse>());
client.On("binary", response =>
{
var bytes = response.GetValue<byte[]>();
result = Encoding.UTF8.GetString(bytes);
});
client.OnConnected += async (sender, e) =>
{
await client.EmitAsync("binary", "return all the characters");
};
await client.ConnectAsync();
await Task.Delay(200);
await client.DisconnectAsync();

const string dotNetCore = ".net core";
const string client001 = "client001";
const string name = "unit test";
Assert.AreEqual("return all the characters", result);
}

client.OnConnected += async (sender, e) =>
[TestMethod]
public async Task BinaryObjTest()
{
string result = null;
var client = new SocketIO(ConnectAsyncTest.V4_URL, new SocketIOOptions
{
await client.EmitAsync("bytes", name, new
Reconnection = false,
EIO = 4,
Query = new Dictionary<string, string>
{
source = client001,
bytes = Encoding.UTF8.GetBytes(dotNetCore)
});
{ "token", "v3" }
}
});
client.On("binary-obj", response =>
{
var data = response.GetValue<BinaryObjectResponse>();
result = Encoding.UTF8.GetString(data.Data);
});
client.OnConnected += async (sender, e) =>
{
await client.EmitAsync("binary-obj", "return all the characters");
};
await client.ConnectAsync();
await Task.Delay(200);
await client.DisconnectAsync();

Assert.AreEqual("client001", result.ClientSource);
Assert.AreEqual("server", result.Source);
Assert.AreEqual($"{dotNetCore} - server - {name}", Encoding.UTF8.GetString(result.Buffer));
Assert.AreEqual("return all the characters", result);
}
}
}
8 changes: 4 additions & 4 deletions src/SocketIOClient/Packgers/MessageBinaryEventPackger.cs
Expand Up @@ -20,10 +20,10 @@ public void Unpack(SocketIO client, string text)
if (int.TryParse(text.Substring(0, index), out _totalCount))
{
text = text.Substring(index + 1);
if (!string.IsNullOrEmpty(client.Namespace))
{
text = text.Substring(client.Namespace.Length);
}
//if (!string.IsNullOrEmpty(client.Namespace))
//{
// text = text.Substring(client.Namespace.Length);
//}
int packetIndex = text.IndexOf('[');
string id = null;
if (packetIndex > 0)
Expand Down
20 changes: 20 additions & 0 deletions src/socket.io-server-v3/app.js
Expand Up @@ -33,6 +33,26 @@ io.on('connection', socket => {
});
});

socket.on('binary', (data) => {
io.emit("binary", Buffer.from(data));
});

socket.on('binary-obj', (data) => {
io.emit("binary-obj", {
data: Buffer.from(data)
});
});

socket.on('binary', (data) => {
io.emit("binary", Buffer.from(data));
});

socket.on('binary-obj', (data) => {
io.emit("binary-obj", {
data: Buffer.from(data)
});
});

socket.on("sever disconnect", close => {
socket.disconnect(close)
});
Expand Down
20 changes: 20 additions & 0 deletions src/socket.io-server/app.ts
Expand Up @@ -56,6 +56,16 @@ io.on("connection", socket => {
});
});

socket.on('binary', (data) => {
io.emit("binary", Buffer.from(data));
});

socket.on('binary-obj', (data) => {
io.emit("binary-obj", {
data: Buffer.from(data)
});
});

socket.on("sever disconnect", close => {
socket.disconnect(close)
});
Expand Down Expand Up @@ -120,6 +130,16 @@ nsp.on("connection", socket => {
});
});

socket.on('binary', (data) => {
io.emit("binary", Buffer.from(data));
});

socket.on('binary-obj', (data) => {
io.emit("binary-obj", {
data: Buffer.from(data)
});
});

socket.on("sever disconnect", close => {
socket.disconnect(close)
});
Expand Down

0 comments on commit 2a15b44

Please sign in to comment.