Browse Source

Added Config.APITimeout

tags/docs-0.9
Brandon Smith 9 years ago
parent
commit
0540d4c244
6 changed files with 14 additions and 9 deletions
  1. +1
    -1
      src/Discord.Net/DiscordClient.cs
  2. +3
    -0
      src/Discord.Net/DiscordClientConfig.cs
  3. +2
    -2
      src/Discord.Net/Net/API/DiscordAPIClient.cs
  4. +2
    -1
      src/Discord.Net/Net/API/RestClient.BuiltIn.cs
  5. +3
    -2
      src/Discord.Net/Net/API/RestClient.SharpRest.cs
  6. +3
    -3
      src/Discord.Net/Net/API/RestClient.cs

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

@@ -92,7 +92,7 @@ namespace Discord
_connectedEvent = new ManualResetEventSlim(false); _connectedEvent = new ManualResetEventSlim(false);
_rand = new Random(); _rand = new Random();


_api = new DiscordAPIClient(_config.LogLevel);
_api = new DiscordAPIClient(_config.LogLevel, _config.APITimeout);
_dataSocket = new DataWebSocket(this); _dataSocket = new DataWebSocket(this);
_dataSocket.Connected += (s, e) => { if (_state == (int)DiscordClientState.Connecting) CompleteConnect(); }; _dataSocket.Connected += (s, e) => { if (_state == (int)DiscordClientState.Connecting) CompleteConnect(); };
_dataSocket.Disconnected += async (s, e) => { RaiseDisconnected(e); if (e.WasUnexpected) await _dataSocket.Login(_token); }; _dataSocket.Disconnected += async (s, e) => { RaiseDisconnected(e); if (e.WasUnexpected) await _dataSocket.Login(_token); };


+ 3
- 0
src/Discord.Net/DiscordClientConfig.cs View File

@@ -17,6 +17,9 @@ namespace Discord
/// <summary> Gets or sets the time (in milliseconds) to wait after an reconnect fails before retrying. </summary> /// <summary> Gets or sets the time (in milliseconds) to wait after an reconnect fails before retrying. </summary>
public int FailedReconnectDelay { get { return _failedReconnectDelay; } set { SetValue(ref _failedReconnectDelay, value); } } public int FailedReconnectDelay { get { return _failedReconnectDelay; } set { SetValue(ref _failedReconnectDelay, value); } }
private int _failedReconnectDelay = 10000; private int _failedReconnectDelay = 10000;
/// <summary> Max time (in milliseconds) to wait for an API request to complete. </summary>
public int APITimeout { get { return _apiTimeout; } set { SetValue(ref _apiTimeout, value); } }
private int _apiTimeout = 5000;


/// <summary> Gets or sets the time (in milliseconds) to wait when the websocket's message queue is empty before checking again. </summary> /// <summary> Gets or sets the time (in milliseconds) to wait when the websocket's message queue is empty before checking again. </summary>
public int WebSocketInterval { get { return _webSocketInterval; } set { SetValue(ref _webSocketInterval, value); } } public int WebSocketInterval { get { return _webSocketInterval; } set { SetValue(ref _webSocketInterval, value); } }


+ 2
- 2
src/Discord.Net/Net/API/DiscordAPIClient.cs View File

@@ -11,9 +11,9 @@ namespace Discord.Net.API
public RestClient RestClient => _rest; public RestClient RestClient => _rest;
private readonly RestClient _rest; private readonly RestClient _rest;


public DiscordAPIClient(LogMessageSeverity logLevel)
public DiscordAPIClient(LogMessageSeverity logLevel, int timeout)
{ {
_rest = new RestClient(logLevel);
_rest = new RestClient(logLevel, timeout);
} }


private string _token; private string _token;


+ 2
- 1
src/Discord.Net/Net/API/RestClient.BuiltIn.cs View File

@@ -14,7 +14,7 @@ namespace Discord.Net.API
{ {
private readonly HttpClient _client; private readonly HttpClient _client;


public BuiltInRestEngine(string userAgent)
public BuiltInRestEngine(string userAgent, int timeout)
{ {
_client = new HttpClient(new HttpClientHandler _client = new HttpClient(new HttpClientHandler
{ {
@@ -25,6 +25,7 @@ namespace Discord.Net.API
_client.DefaultRequestHeaders.Add("accept", "*/*"); _client.DefaultRequestHeaders.Add("accept", "*/*");
_client.DefaultRequestHeaders.Add("accept-encoding", "gzip,deflate"); _client.DefaultRequestHeaders.Add("accept-encoding", "gzip,deflate");
_client.DefaultRequestHeaders.Add("user-agent", userAgent); _client.DefaultRequestHeaders.Add("user-agent", userAgent);
_client.Timeout = TimeSpan.FromMilliseconds(timeout);
} }


public void SetToken(string token) public void SetToken(string token)


+ 3
- 2
src/Discord.Net/Net/API/RestClient.SharpRest.cs View File

@@ -12,7 +12,7 @@ namespace Discord.Net.API
{ {
private readonly RestSharp.RestClient _client; private readonly RestSharp.RestClient _client;


public RestSharpRestEngine(string userAgent)
public RestSharpRestEngine(string userAgent, int timeout)
{ {
_client = new RestSharp.RestClient(Endpoints.BaseApi) _client = new RestSharp.RestClient(Endpoints.BaseApi)
{ {
@@ -20,7 +20,8 @@ namespace Discord.Net.API
}; };
_client.AddDefaultHeader("accept", "*/*"); _client.AddDefaultHeader("accept", "*/*");
_client.AddDefaultHeader("accept-encoding", "gzip,deflate"); _client.AddDefaultHeader("accept-encoding", "gzip,deflate");
_client.UserAgent = userAgent;
_client.UserAgent = userAgent;
_client.ReadWriteTimeout = timeout;
} }


public void SetToken(string token) public void SetToken(string token)


+ 3
- 3
src/Discord.Net/Net/API/RestClient.cs View File

@@ -21,16 +21,16 @@ namespace Discord.Net.API
private readonly LogMessageSeverity _logLevel; private readonly LogMessageSeverity _logLevel;
private CancellationToken _cancelToken; private CancellationToken _cancelToken;


public RestClient(LogMessageSeverity logLevel)
public RestClient(LogMessageSeverity logLevel, int timeout)
{ {
_logLevel = logLevel; _logLevel = logLevel;
string version = typeof(RestClient).GetTypeInfo().Assembly.GetName().Version.ToString(2); string version = typeof(RestClient).GetTypeInfo().Assembly.GetName().Version.ToString(2);
string userAgent = $"Discord.Net/{version} (https://github.com/RogueException/Discord.Net)"; string userAgent = $"Discord.Net/{version} (https://github.com/RogueException/Discord.Net)";
#if DNXCORE50 #if DNXCORE50
_engine = new BuiltInRestEngine(userAgent);
_engine = new BuiltInRestEngine(userAgent, timeout);
#else #else
_engine = new RestSharpRestEngine(userAgent);
_engine = new RestSharpRestEngine(userAgent, timeout);
#endif #endif
} }




Loading…
Cancel
Save