Gateway disposes the subscriptions when closed
This commit is contained in:
parent
9c8bedf581
commit
b01ba1e2cd
@ -7,13 +7,14 @@ namespace Discord.API;
|
||||
public abstract class AbstractGateway {
|
||||
protected readonly IWebsocketClient WebsocketClient;
|
||||
protected readonly TimeProvider TimeProvider;
|
||||
private List<IDisposable> Subscriptions = new(3);
|
||||
|
||||
public AbstractGateway(IWebsocketClient client, TimeProvider time_provider){
|
||||
this.WebsocketClient = client;
|
||||
this.TimeProvider = time_provider;
|
||||
WebsocketClient.DisconnectionHappened.Subscribe(DisconnectHandlerInternal);
|
||||
WebsocketClient.ReconnectionHappened.Subscribe(ReconnectHandler);
|
||||
WebsocketClient.MessageReceived.Subscribe(MessageReceivedHandler);
|
||||
Subscriptions.Add(WebsocketClient.DisconnectionHappened.Subscribe(DisconnectHandlerInternal));
|
||||
Subscriptions.Add(WebsocketClient.ReconnectionHappened.Subscribe(ReconnectHandler));
|
||||
Subscriptions.Add(WebsocketClient.MessageReceived.Subscribe(MessageReceivedHandler));
|
||||
WebsocketClient.Start();
|
||||
}
|
||||
|
||||
@ -100,5 +101,9 @@ public abstract class AbstractGateway {
|
||||
public async Task Close(){
|
||||
StopHeartbeat();
|
||||
await WebsocketClient.Stop(System.Net.WebSockets.WebSocketCloseStatus.NormalClosure, "Shutdown");
|
||||
foreach (var sub in Subscriptions)
|
||||
{
|
||||
sub.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user