feat: query identify ratelimiter when identifying instead of when connecting websocket

This commit is contained in:
spiral 2021-12-26 01:46:25 -05:00
parent 40acd9370c
commit 5627fa9864
No known key found for this signature in database
GPG Key ID: A6059F0CA0E1BD31

View File

@ -129,8 +129,6 @@ public class Shard
{
while (true)
{
await _ratelimiter.Identify(_info.ShardId);
_logger.Information("Shard {ShardId}: Connecting to WebSocket", _info.ShardId);
try
{
@ -149,7 +147,14 @@ public class Shard
=> _conn.Disconnect(closeStatus, null);
private async Task SendIdentify()
=> await _conn.Send(new GatewayPacket
{
_logger.Debug("Shard {ShardId}: Requesting identify from ratelimiter", _info.ShardId);
await _ratelimiter.Identify(_info.ShardId);
_logger.Debug("Shard {ShardId}: Ratelimiter said OK to identify now", _info.ShardId);
await _conn.Send(new GatewayPacket
{
Opcode = GatewayOpcode.Identify,
Payload = new GatewayIdentify
@ -167,6 +172,7 @@ public class Shard
LargeThreshold = 50
}
});
}
private async Task SendResume((string SessionId, int? LastSeq) arg)
=> await _conn.Send(new GatewayPacket