Skip to content

Commit f530ada

Browse files
committed
add Pong message handling and corresponding unit test in SocketIO
1 parent 3f671da commit f530ada

File tree

2 files changed

+23
-11
lines changed

2 files changed

+23
-11
lines changed

src/SocketIOClient/V2/SocketIO.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ public async Task OnNextAsync(IMessage message)
138138
case MessageType.Ping:
139139
OnPing?.Invoke(this, EventArgs.Empty);
140140
break;
141+
case MessageType.Pong:
142+
HandlePongMessage(message);
143+
break;
141144
case MessageType.Connected:
142145
await HandleConnectedMessage(message);
143146
break;
@@ -167,4 +170,10 @@ private Task HandleConnectedMessage(IMessage message)
167170
Connected = true;
168171
return Task.CompletedTask;
169172
}
173+
174+
private void HandlePongMessage(IMessage message)
175+
{
176+
var pong = (PongMessage)message;
177+
OnPong?.Invoke(this, pong.Duration);
178+
}
170179
}

tests/SocketIOClient.UnitTests/V2/SocketIOTests.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -231,15 +231,18 @@ public async Task OnPing_PingMessageWasReceived_EventHandlerIsCalled()
231231
called.Should().BeTrue();
232232
}
233233

234-
// [Fact]
235-
// public async Task OnPong_PongMessageWasReceived_EventHandlerIsCalled()
236-
// {
237-
// TimeSpan? ts = null;
238-
// _io.OnPong+= (_, e) => ts=e;
239-
// await ConnectAsync();
240-
//
241-
// await _io.OnNextAsync(new PongMessage());
242-
//
243-
// called.Should().BeTrue();
244-
// }
234+
[Fact]
235+
public async Task OnPong_PongMessageWasReceived_EventHandlerIsCalled()
236+
{
237+
TimeSpan? ts = null;
238+
_io.OnPong += (_, e) => ts = e;
239+
await ConnectAsync();
240+
241+
await _io.OnNextAsync(new PongMessage
242+
{
243+
Duration = TimeSpan.FromSeconds(2),
244+
});
245+
246+
ts.Should().Be(TimeSpan.FromSeconds(2));
247+
}
245248
}

0 commit comments

Comments
 (0)