Skip to content

Commit 142dae0

Browse files
committed
add DisconnectAsync
1 parent 1cc1aa2 commit 142dae0

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/SocketIOClient/V2/SocketIO.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,4 +190,11 @@ private void HandlePongMessage(IMessage message)
190190
var pong = (PongMessage)message;
191191
OnPong?.Invoke(this, pong.Duration);
192192
}
193+
194+
public async Task DisconnectAsync()
195+
{
196+
_session?.Dispose();
197+
Connected = false;
198+
Id = null;
199+
}
193200
}

tests/SocketIOClient.UnitTests/V2/SocketIOTests.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,4 +273,25 @@ await _io.OnNextAsync(new PongMessage
273273

274274
ts.Should().Be(TimeSpan.FromSeconds(2));
275275
}
276+
277+
[Fact]
278+
public async Task DisconnectAsync_NeverConnected_ClearStatefulData()
279+
{
280+
await _io.DisconnectAsync();
281+
282+
_io.Connected.Should().BeFalse();
283+
_io.Id.Should().BeNull();
284+
_session.DidNotReceive().Dispose();
285+
}
286+
287+
[Fact]
288+
public async Task DisconnectAsync_EverConnected_ClearStatefulData()
289+
{
290+
await ConnectAsync();
291+
await _io.DisconnectAsync();
292+
293+
_io.Connected.Should().BeFalse();
294+
_io.Id.Should().BeNull();
295+
_session.Received(1).Dispose();
296+
}
276297
}

0 commit comments

Comments
 (0)