Browse Source

Added WebSocket timeout, Test event timeout

tags/docs-0.9
Brandon Smith 9 years ago
parent
commit
ff6b78bab4
2 changed files with 7 additions and 3 deletions
  1. +4
    -2
      Discord.Net.Tests/Tests.cs
  2. +3
    -1
      Discord.Net/DiscordWebSocket.cs

+ 4
- 2
Discord.Net.Tests/Tests.cs View File

@@ -9,7 +9,8 @@ namespace Discord.Net.Tests
[TestClass]
public class Tests
{
private DiscordClient _bot1, _bot2;
private const int EventTimeout = 5000; //Max time in milliseconds to wait for an event response from our test actions
private DiscordClient _bot1, _bot2;
private Server _testServer;
private Channel _testServerChannel;
private Random _random;
@@ -29,6 +30,7 @@ namespace Discord.Net.Tests
Task.WaitAll(_bot1.Servers.Select(x => _bot1.LeaveServer(x)).ToArray());
Task.WaitAll(_bot2.Servers.Select(x => _bot2.LeaveServer(x)).ToArray());

//Create new server and invite other bot to it
_testServer = _bot1.CreateServer("Discord.Net Testbed", Regions.US_East).Result;
_testServerChannel = _testServer.DefaultChannel;
Invite invite = _bot1.CreateInvite(_testServer, 60, 1, false, false).Result;
@@ -99,7 +101,7 @@ namespace Discord.Net.Tests

addEvent(handler);
action();
trigger.WaitOne(5000);
trigger.WaitOne(EventTimeout);
removeEvent(handler);

Assert.AreEqual(true, result, msg);


+ 3
- 1
Discord.Net/DiscordWebSocket.cs View File

@@ -15,6 +15,7 @@ namespace Discord
{
private const int ReceiveChunkSize = 4096;
private const int SendChunkSize = 4096;
private const int ReadyTimeout = 5000; //Max time in milliseconds between connecting to Discord and receiving a READY event

private volatile ClientWebSocket _webSocket;
private volatile CancellationTokenSource _cancelToken;
@@ -65,7 +66,8 @@ namespace Discord
msg.Payload.Properties["$referring_domain"] = "";
SendMessage(msg, cancelToken);

_connectWaitOnLogin.WaitOne();
if (!_connectWaitOnLogin.WaitOne(ReadyTimeout))
throw new Exception("No reply from Discord server");
}
public async Task DisconnectAsync()
{


Loading…
Cancel
Save