Browse Source

Merge f7ba519989 into 8f0bc1933a

pull/46/merge
Master Kwoth 9 years ago
parent
commit
25101719cc
2 changed files with 15 additions and 11 deletions
  1. +6
    -2
      src/Discord.Net.Audio/Net/VoiceSocket.cs
  2. +9
    -9
      src/Discord.Net/DiscordClient.cs

+ 6
- 2
src/Discord.Net.Audio/Net/VoiceSocket.cs View File

@@ -407,7 +407,7 @@ namespace Discord.Net.WebSockets
WebSocketMessage msg; WebSocketMessage msg;
using (var reader = new JsonTextReader(new StringReader(json))) using (var reader = new JsonTextReader(new StringReader(json)))
msg = _serializer.Deserialize(reader, typeof(WebSocketMessage)) as WebSocketMessage; msg = _serializer.Deserialize(reader, typeof(WebSocketMessage)) as WebSocketMessage;
var opCode = (OpCodes)msg.Operation; var opCode = (OpCodes)msg.Operation;
switch (opCode) switch (opCode)
{ {
@@ -418,7 +418,11 @@ namespace Discord.Net.WebSockets
var payload = (msg.Payload as JToken).ToObject<ReadyEvent>(_serializer); var payload = (msg.Payload as JToken).ToObject<ReadyEvent>(_serializer);
_heartbeatInterval = payload.HeartbeatInterval; _heartbeatInterval = payload.HeartbeatInterval;
_ssrc = payload.SSRC; _ssrc = payload.SSRC;
string hostname = Host.Substring(0, Host.IndexOf('?')).Replace("wss://", "");
string hostname;
if (Host.Contains("?"))
hostname = Host.Substring(0, Host.IndexOf('?')).Replace("wss://", "");
else
hostname = Host.Replace("wss://", "");
var address = (await Dns.GetHostAddressesAsync(hostname).ConfigureAwait(false)).FirstOrDefault(); var address = (await Dns.GetHostAddressesAsync(hostname).ConfigureAwait(false)).FirstOrDefault();
_endpoint = new IPEndPoint(address, payload.Port); _endpoint = new IPEndPoint(address, payload.Port);




+ 9
- 9
src/Discord.Net/DiscordClient.cs View File

@@ -529,23 +529,23 @@ namespace Discord
try try
{ {
ulong serverId; ulong serverId;
ulong[] serverIds = new ulong[50];
int i = 0;


const short batchSize = 50;
int largeServersCount = 0;
await Task.Delay(2500, cancelToken); await Task.Delay(2500, cancelToken);
while (true)
do
{ {
while (_largeServers.TryDequeue(out serverId) && i < 50)
serverIds[i++] = serverId;
if (i > 0)
largeServersCount = 0;
ulong[] serverIds = new ulong[batchSize];
while (largeServersCount < batchSize && _largeServers.TryDequeue(out serverIds[largeServersCount++])) { }
if (largeServersCount > 0)
{ {
Logger.Verbose($"Downloading data for {largeServersCount} large servers.");
cancelToken.ThrowIfCancellationRequested(); cancelToken.ThrowIfCancellationRequested();
GatewaySocket.SendRequestMembers(serverIds, "", 0); GatewaySocket.SendRequestMembers(serverIds, "", 0);
await Task.Delay(1500, cancelToken); await Task.Delay(1500, cancelToken);
} }
if (i < 50)
break;
}
} while (largeServersCount == batchSize);
await Task.Delay(2500, cancelToken); await Task.Delay(2500, cancelToken);
EndConnect(); EndConnect();
} }


Loading…
Cancel
Save