Skip to content

Commit 10e5d2f

Browse files
committed
support socket.io server v2.x
1 parent e4932d1 commit 10e5d2f

File tree

23 files changed

+506
-66
lines changed

23 files changed

+506
-66
lines changed

src/SocketIOClient.Sample/Program.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ static async Task Main(string[] args)
1414
//Console.OutputEncoding = Encoding.UTF8;
1515
//Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
1616

17-
var uri = new Uri("http://localhost:11003/");
17+
var uri = new Uri("http://localhost:11002/");
1818

1919
var socket = new SocketIO(uri, new SocketIOOptions
2020
{
2121
Query = new Dictionary<string, string>
2222
{
23-
{"token", "V3" }
23+
{"token", "V2" }
2424
}
2525
});
2626

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using SocketIOClient.Messages;
3+
4+
namespace SocketIOClient.UnitTest.MessageTests
5+
{
6+
[TestClass]
7+
public class MessageFactoryTest
8+
{
9+
[TestMethod]
10+
public void CreateEio3OpenedMessage()
11+
{
12+
var msg = MessageFactory.CreateOpenedMessage("97:0{\"sid\":\"wOuAvDB9Jj6yE0VrAL8N\",\"upgrades\":[\"websocket\"],\"pingInterval\":25000,\"pingTimeout\":30000}");
13+
Assert.AreEqual(MessageType.Opened, msg.Type);
14+
Assert.AreEqual("wOuAvDB9Jj6yE0VrAL8N", msg.Sid);
15+
Assert.AreEqual(25000, msg.PingInterval);
16+
Assert.AreEqual(30000, msg.PingTimeout);
17+
Assert.AreEqual(3, msg.Eio);
18+
Assert.AreEqual(1, msg.Upgrades.Count);
19+
Assert.AreEqual("websocket", msg.Upgrades[0]);
20+
}
21+
22+
[TestMethod]
23+
public void CreateEio4OpenedMessage()
24+
{
25+
var msg = MessageFactory.CreateOpenedMessage("0{\"sid\":\"6lV4Ef7YOyGF-5dCBvKy\",\"upgrades\":[],\"pingInterval\":10000,\"pingTimeout\":5000}");
26+
Assert.AreEqual(MessageType.Opened, msg.Type);
27+
Assert.AreEqual("6lV4Ef7YOyGF-5dCBvKy", msg.Sid);
28+
Assert.AreEqual(10000, msg.PingInterval);
29+
Assert.AreEqual(5000, msg.PingTimeout);
30+
Assert.AreEqual(4, msg.Eio);
31+
Assert.AreEqual(0, msg.Upgrades.Count);
32+
}
33+
}
34+
}

src/SocketIOClient.UnitTest/MessageTests/MessageReadTest.cs

Lines changed: 81 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class MessageReadTest
1010
[TestMethod]
1111
public void Opened()
1212
{
13-
var msg = MessageFactory.CreateMessage("0{\"sid\":\"6lV4Ef7YOyGF-5dCBvKy\",\"upgrades\":[],\"pingInterval\":10000,\"pingTimeout\":5000}");
13+
var msg = MessageFactory.CreateMessage(4, "0{\"sid\":\"6lV4Ef7YOyGF-5dCBvKy\",\"upgrades\":[],\"pingInterval\":10000,\"pingTimeout\":5000}");
1414
Assert.AreEqual(MessageType.Opened, msg.Type);
1515

1616
var openedMsg = msg as OpenedMessage;
@@ -23,21 +23,21 @@ public void Opened()
2323
[TestMethod]
2424
public void Ping()
2525
{
26-
var msg = MessageFactory.CreateMessage("2");
26+
var msg = MessageFactory.CreateMessage(4, "2");
2727
Assert.AreEqual(MessageType.Ping, msg.Type);
2828
}
2929

3030
[TestMethod]
3131
public void Pong()
3232
{
33-
var msg = MessageFactory.CreateMessage("3");
33+
var msg = MessageFactory.CreateMessage(4, "3");
3434
Assert.AreEqual(MessageType.Pong, msg.Type);
3535
}
3636

3737
[TestMethod]
3838
public void Eio4Connected()
3939
{
40-
var msg = MessageFactory.CreateMessage("40{\"sid\":\"aMA_EmVTuzpgR16PAc4w\"}");
40+
var msg = MessageFactory.CreateMessage(4, "40{\"sid\":\"aMA_EmVTuzpgR16PAc4w\"}");
4141
Assert.AreEqual(MessageType.Connected, msg.Type);
4242

4343
var connectedMsg = msg as ConnectedMessage;
@@ -49,7 +49,7 @@ public void Eio4Connected()
4949
[TestMethod]
5050
public void Eio4NamespaceConnected()
5151
{
52-
var msg = MessageFactory.CreateMessage("40/nsp,{\"sid\":\"xO_jp2_xrGtXUveLAc4y\"}");
52+
var msg = MessageFactory.CreateMessage(4, "40/nsp,{\"sid\":\"xO_jp2_xrGtXUveLAc4y\"}");
5353
Assert.AreEqual(MessageType.Connected, msg.Type);
5454

5555
var connectedMsg = msg as ConnectedMessage;
@@ -58,10 +58,70 @@ public void Eio4NamespaceConnected()
5858
Assert.AreEqual("xO_jp2_xrGtXUveLAc4y", connectedMsg.Sid);
5959
}
6060

61+
[TestMethod]
62+
public void Eio3Connected()
63+
{
64+
var msg = MessageFactory.CreateMessage(3, "40");
65+
Assert.AreEqual(MessageType.Connected, msg.Type);
66+
67+
var connectedMsg = msg as ConnectedMessage;
68+
69+
Assert.AreEqual(string.Empty, connectedMsg.Namespace);
70+
Assert.IsNull(connectedMsg.Sid);
71+
}
72+
73+
[TestMethod]
74+
public void Eio3NamespaceConnected1()
75+
{
76+
var msg = MessageFactory.CreateMessage(3, "40/nsp,");
77+
Assert.AreEqual(MessageType.Connected, msg.Type);
78+
79+
var connectedMsg = msg as ConnectedMessage;
80+
81+
Assert.AreEqual("/nsp", connectedMsg.Namespace);
82+
Assert.IsNull(connectedMsg.Sid);
83+
}
84+
85+
[TestMethod]
86+
public void Eio3NamespaceConnected2()
87+
{
88+
var msg = MessageFactory.CreateMessage(3, "40/nsp");
89+
Assert.AreEqual(MessageType.Connected, msg.Type);
90+
91+
var connectedMsg = msg as ConnectedMessage;
92+
93+
Assert.AreEqual("/nsp", connectedMsg.Namespace);
94+
Assert.IsNull(connectedMsg.Sid);
95+
}
96+
97+
[TestMethod]
98+
public void Eio3NamespaceConnected3()
99+
{
100+
var msg = MessageFactory.CreateMessage(3, "40/nsp?token=V2,");
101+
Assert.AreEqual(MessageType.Connected, msg.Type);
102+
103+
var connectedMsg = msg as ConnectedMessage;
104+
105+
Assert.AreEqual("/nsp", connectedMsg.Namespace);
106+
Assert.IsNull(connectedMsg.Sid);
107+
}
108+
109+
[TestMethod]
110+
public void Eio3NamespaceConnected4()
111+
{
112+
var msg = MessageFactory.CreateMessage(3, "40/nsp?token=V2");
113+
Assert.AreEqual(MessageType.Connected, msg.Type);
114+
115+
var connectedMsg = msg as ConnectedMessage;
116+
117+
Assert.AreEqual("/nsp", connectedMsg.Namespace);
118+
Assert.IsNull(connectedMsg.Sid);
119+
}
120+
61121
[TestMethod]
62122
public void Disconnected()
63123
{
64-
var msg = MessageFactory.CreateMessage("41");
124+
var msg = MessageFactory.CreateMessage(4, "41");
65125
Assert.AreEqual(MessageType.Disconnected, msg.Type);
66126

67127
var realMsg = msg as DisconnectedMessage;
@@ -72,7 +132,7 @@ public void Disconnected()
72132
[TestMethod]
73133
public void NamespaceDisconnected()
74134
{
75-
var msg = MessageFactory.CreateMessage("41/github,");
135+
var msg = MessageFactory.CreateMessage(4, "41/github,");
76136
Assert.AreEqual(MessageType.Disconnected, msg.Type);
77137

78138
var realMsg = msg as DisconnectedMessage;
@@ -83,7 +143,7 @@ public void NamespaceDisconnected()
83143
[TestMethod]
84144
public void Event0Param()
85145
{
86-
var msg = MessageFactory.CreateMessage("42[\"hi\"]");
146+
var msg = MessageFactory.CreateMessage(4, "42[\"hi\"]");
87147
Assert.AreEqual(MessageType.EventMessage, msg.Type);
88148

89149
var realMsg = msg as EventMessage;
@@ -97,7 +157,7 @@ public void Event0Param()
97157
[TestMethod]
98158
public void Event1Param()
99159
{
100-
var msg = MessageFactory.CreateMessage("42[\"hi\",\"V3: onAny\"]");
160+
var msg = MessageFactory.CreateMessage(4, "42[\"hi\",\"V3: onAny\"]");
101161
Assert.AreEqual(MessageType.EventMessage, msg.Type);
102162

103163
var realMsg = msg as EventMessage;
@@ -112,7 +172,7 @@ public void Event1Param()
112172
[TestMethod]
113173
public void NamespaceEvent0Param()
114174
{
115-
var msg = MessageFactory.CreateMessage("42/nsp,[\"234\"]");
175+
var msg = MessageFactory.CreateMessage(4, "42/nsp,[\"234\"]");
116176
Assert.AreEqual(MessageType.EventMessage, msg.Type);
117177

118178
var realMsg = msg as EventMessage;
@@ -126,7 +186,7 @@ public void NamespaceEvent0Param()
126186
[TestMethod]
127187
public void NamespaceEvent1Param()
128188
{
129-
var msg = MessageFactory.CreateMessage("42/nsp,[\"qww\",true]");
189+
var msg = MessageFactory.CreateMessage(4, "42/nsp,[\"qww\",true]");
130190
Assert.AreEqual(MessageType.EventMessage, msg.Type);
131191

132192
var realMsg = msg as EventMessage;
@@ -141,7 +201,7 @@ public void NamespaceEvent1Param()
141201
[TestMethod]
142202
public void EventMessageWithId()
143203
{
144-
var msg = MessageFactory.CreateMessage("42/nsp,17[\"client calls the server's callback 0\"]");
204+
var msg = MessageFactory.CreateMessage(4, "42/nsp,17[\"client calls the server's callback 0\"]");
145205
Assert.AreEqual(MessageType.EventMessage, msg.Type);
146206

147207
var realMsg = msg as EventMessage;
@@ -156,7 +216,7 @@ public void EventMessageWithId()
156216
[TestMethod]
157217
public void Ack()
158218
{
159-
var msg = MessageFactory.CreateMessage("431[\"doghappy\"]");
219+
var msg = MessageFactory.CreateMessage(4, "431[\"doghappy\"]");
160220
Assert.AreEqual(MessageType.AckMessage, msg.Type);
161221

162222
var realMsg = msg as ClientAckMessage;
@@ -171,7 +231,7 @@ public void Ack()
171231
[TestMethod]
172232
public void NamespaceAck()
173233
{
174-
var msg = MessageFactory.CreateMessage("43/google,15[\"doghappy\"]");
234+
var msg = MessageFactory.CreateMessage(4, "43/google,15[\"doghappy\"]");
175235
Assert.AreEqual(MessageType.AckMessage, msg.Type);
176236

177237
var realMsg = msg as ClientAckMessage;
@@ -186,7 +246,7 @@ public void NamespaceAck()
186246
[TestMethod]
187247
public void Error()
188248
{
189-
var msg = MessageFactory.CreateMessage("44{\"message\":\"Authentication error2\"}");
249+
var msg = MessageFactory.CreateMessage(4, "44{\"message\":\"Authentication error2\"}");
190250
Assert.AreEqual(MessageType.ErrorMessage, msg.Type);
191251

192252
var result = msg as ErrorMessage;
@@ -198,7 +258,7 @@ public void Error()
198258
[TestMethod]
199259
public void NamespaceError()
200260
{
201-
var msg = MessageFactory.CreateMessage("44/message,{\"message\":\"Authentication error\"}");
261+
var msg = MessageFactory.CreateMessage(4, "44/message,{\"message\":\"Authentication error\"}");
202262
Assert.AreEqual(MessageType.ErrorMessage, msg.Type);
203263

204264
var result = msg as ErrorMessage;
@@ -210,7 +270,7 @@ public void NamespaceError()
210270
[TestMethod]
211271
public void Binary()
212272
{
213-
var msg = MessageFactory.CreateMessage("451-[\"1 params\",{\"_placeholder\":true,\"num\":0}]");
273+
var msg = MessageFactory.CreateMessage(4, "451-[\"1 params\",{\"_placeholder\":true,\"num\":0}]");
214274
Assert.AreEqual(MessageType.BinaryMessage, msg.Type);
215275

216276
var realMsg = msg as BinaryMessage;
@@ -226,7 +286,7 @@ public void Binary()
226286
[TestMethod]
227287
public void NamespaceBinary()
228288
{
229-
var msg = MessageFactory.CreateMessage("451-/why-ve,[\"1 params\",{\"_placeholder\":true,\"num\":0}]");
289+
var msg = MessageFactory.CreateMessage(4, "451-/why-ve,[\"1 params\",{\"_placeholder\":true,\"num\":0}]");
230290
Assert.AreEqual(MessageType.BinaryMessage, msg.Type);
231291

232292
var realMsg = msg as BinaryMessage;
@@ -242,7 +302,7 @@ public void NamespaceBinary()
242302
[TestMethod]
243303
public void NamespaceBinaryWithId()
244304
{
245-
var msg = MessageFactory.CreateMessage("451-/why-ve,30[\"1 params\",{\"_placeholder\":true,\"num\":0}]");
305+
var msg = MessageFactory.CreateMessage(4, "451-/why-ve,30[\"1 params\",{\"_placeholder\":true,\"num\":0}]");
246306
Assert.AreEqual(MessageType.BinaryMessage, msg.Type);
247307

248308
var realMsg = msg as BinaryMessage;
@@ -259,7 +319,7 @@ public void NamespaceBinaryWithId()
259319
[TestMethod]
260320
public void BinaryAck()
261321
{
262-
var msg = MessageFactory.CreateMessage("461-6[{\"_placeholder\":true,\"num\":0}]");
322+
var msg = MessageFactory.CreateMessage(4, "461-6[{\"_placeholder\":true,\"num\":0}]");
263323
Assert.AreEqual(MessageType.BinaryAckMessage, msg.Type);
264324

265325
var realMsg = msg as ClientBinaryAckMessage;
@@ -275,7 +335,7 @@ public void BinaryAck()
275335
[TestMethod]
276336
public void NamespaceBinaryAck()
277337
{
278-
var msg = MessageFactory.CreateMessage("461-/name-space,6[{\"_placeholder\":true,\"num\":0}]");
338+
var msg = MessageFactory.CreateMessage(4, "461-/name-space,6[{\"_placeholder\":true,\"num\":0}]");
279339
Assert.AreEqual(MessageType.BinaryAckMessage, msg.Type);
280340

281341
var realMsg = msg as ClientBinaryAckMessage;

0 commit comments

Comments
 (0)