Added DNXCore placeholders (again)

This commit is contained in:
RogueException
2015-11-10 13:44:57 -04:00
parent d035e3f8eb
commit e7e2a85c3a
9 changed files with 91 additions and 31 deletions

View File

@@ -12,11 +12,14 @@
"compilationOptions": { "compilationOptions": {
"warningsAsErrors": true "warningsAsErrors": true
}, },
"dependencies": { "dependencies": {
"Discord.Net": "0.8.1-beta1" "Discord.Net": "0.8.1-beta1"
}, },
"frameworks": { "frameworks": {
"net45": { }, "net45": { },
"dnx451": { } "dnx451": { },
"dnxcore50": { }
} }
} }

View File

@@ -12,12 +12,15 @@
"compilationOptions": { "compilationOptions": {
"warningsAsErrors": true "warningsAsErrors": true
}, },
"dependencies": { "dependencies": {
"Discord.Net": "0.8.1-beta1", "Discord.Net": "0.8.1-beta1",
"Discord.Net.Commands": "0.8.1-beta1" "Discord.Net.Commands": "0.8.1-beta1"
}, },
"frameworks": { "frameworks": {
"net45": { }, "net45": { },
"dnx451": { } "dnx451": { },
"dnxcore50": { }
} }
} }

View File

@@ -17,8 +17,12 @@ namespace Discord.Net.Rest
public RestClient(DiscordAPIClientConfig config) public RestClient(DiscordAPIClientConfig config)
{ {
_config = config; _config = config;
#if !DNXCORE50
_engine = new SharpRestEngine(config); _engine = new SharpRestEngine(config);
} #else
//_engine = new BuiltInRestEngine(config);
#endif
}
public void SetToken(string token) => _engine.SetToken(token); public void SetToken(string token) => _engine.SetToken(token);

View File

@@ -1,4 +1,5 @@
using Discord.API; #if !DNXCORE50
using Discord.API;
using RestSharp; using RestSharp;
using System; using System;
using System.Net; using System.Net;
@@ -82,4 +83,5 @@ namespace Discord.Net.Rest
} }
} }
} }
} }
#endif

View File

@@ -131,8 +131,10 @@ namespace Discord.Net.WebSockets
} }
else //Dont make an OS thread if we only want to capture one packet... else //Dont make an OS thread if we only want to capture one packet...
tasks.Add(Task.Run(() => ReceiveVoiceAsync(_cancelToken))); tasks.Add(Task.Run(() => ReceiveVoiceAsync(_cancelToken)));
#if !DNXCORE50
tasks.Add(WatcherAsync()); tasks.Add(WatcherAsync());
#endif
if (tasks.Count > 0) if (tasks.Count > 0)
{ {
// We need to combine tasks into one because receiveThread is // We need to combine tasks into one because receiveThread is
@@ -176,6 +178,7 @@ namespace Discord.Net.WebSockets
private void ReceiveVoiceAsync(CancellationToken cancelToken) private void ReceiveVoiceAsync(CancellationToken cancelToken)
{ {
var closeTask = cancelToken.Wait();
try try
{ {
byte[] packet, decodingBuffer = null, nonce = null, result; byte[] packet, decodingBuffer = null, nonce = null, result;
@@ -193,7 +196,18 @@ namespace Discord.Net.WebSockets
Thread.Sleep(1); Thread.Sleep(1);
if (_udp.Available > 0) if (_udp.Available > 0)
{ {
#if !DNXCORE50
packet = _udp.Receive(ref endpoint); packet = _udp.Receive(ref endpoint);
#else
//TODO: Is this really the only way to end a Receive call in DNXCore?
var receiveTask = _udp.ReceiveAsync();
var task = Task.WhenAny(closeTask, receiveTask).Result;
if (task == closeTask)
break;
var udpPacket = receiveTask.Result;
packet = udpPacket.Buffer;
endpoint = udpPacket.RemoteEndPoint;
#endif
packetLength = packet.Length; packetLength = packet.Length;
if (packetLength > 0 && endpoint.Equals(_endpoint)) if (packetLength > 0 && endpoint.Equals(_endpoint))
@@ -367,6 +381,7 @@ namespace Discord.Net.WebSockets
catch (OperationCanceledException) { } catch (OperationCanceledException) { }
catch (InvalidOperationException) { } //Includes ObjectDisposedException catch (InvalidOperationException) { } //Includes ObjectDisposedException
} }
#if !DNXCORE50
//Closes the UDP socket when _disconnectToken is triggered, since UDPClient doesn't allow passing a canceltoken //Closes the UDP socket when _disconnectToken is triggered, since UDPClient doesn't allow passing a canceltoken
private Task WatcherAsync() private Task WatcherAsync()
{ {
@@ -374,6 +389,7 @@ namespace Discord.Net.WebSockets
return cancelToken.Wait() return cancelToken.Wait()
.ContinueWith(_ => _udp.Close()); .ContinueWith(_ => _udp.Close());
} }
#endif
protected override async Task ProcessMessage(string json) protected override async Task ProcessMessage(string json)
{ {

View File

@@ -1,4 +1,5 @@
using Discord.Helpers; #if DNXCORE50zzz
using Discord.Helpers;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
@@ -148,4 +149,5 @@ namespace Discord.Net.WebSockets
_sendQueue.Enqueue(message); _sendQueue.Enqueue(message);
} }
} }
} }
#endif

View File

@@ -51,8 +51,12 @@ namespace Discord.Net.WebSockets
_loginTimeout = client.Config.ConnectionTimeout; _loginTimeout = client.Config.ConnectionTimeout;
_cancelToken = new CancellationToken(true); _cancelToken = new CancellationToken(true);
_connectedEvent = new ManualResetEventSlim(false); _connectedEvent = new ManualResetEventSlim(false);
#if !DNXCORE50
_engine = new WebSocketSharpEngine(this, client.Config); _engine = new WebSocketSharpEngine(this, client.Config);
#else
//_engine = new BuiltInWebSocketEngine(this, client.Config);
#endif
_engine.BinaryMessage += (s, e) => _engine.BinaryMessage += (s, e) =>
{ {
using (var compressed = new MemoryStream(e.Data, 2, e.Data.Length - 2)) using (var compressed = new MemoryStream(e.Data, 2, e.Data.Length - 2))

View File

@@ -1,7 +1,7 @@
using System; #if !DNXCORE50
using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using WSSharpNWebSocket = WebSocketSharp.WebSocket; using WSSharpNWebSocket = WebSocketSharp.WebSocket;
@@ -111,4 +111,5 @@ namespace Discord.Net.WebSockets
_sendQueue.Enqueue(message); _sendQueue.Enqueue(message);
} }
} }
} }
#endif

View File

@@ -17,32 +17,57 @@
"compilationOptions": { "compilationOptions": {
"allowUnsafe": true "allowUnsafe": true
}, },
"configurations": { "configurations": {
"FullDebug": { "FullDebug": {
"compilationOptions": { "compilationOptions": {
"define": [ "define": [
"DEBUG", "DEBUG",
"TRACE", "TRACE",
"TEST_RESPONSES" "TEST_RESPONSES"
] ]
} }
} }
}, },
"dependencies": {
"Newtonsoft.Json": "7.0.1", "dependencies": {
"RestSharp": "105.2.3", "Newtonsoft.Json": "7.0.1"
"WebSocketSharp": "1.0.3-rc9" },
},
"frameworks": { "frameworks": {
"net45": { "net45": {
"frameworkAssemblies": { "frameworkAssemblies": {
"System.Net.Http": "4.0.0.0" "System.Net.Http": "4.0.0.0"
} },
"dependencies": {
"RestSharp": "105.2.3",
"WebSocketSharp": "1.0.3-rc9"
}
}, },
"dnx451": { "dnx451": {
"frameworkAssemblies": { "frameworkAssemblies": {
"System.Net.Http": "4.0.0.0" "System.Net.Http": "4.0.0.0"
} },
} "dependencies": {
"RestSharp": "105.2.3",
"WebSocketSharp": "1.0.3-rc9"
}
},
"dnxcore50": {
"dependencies": {
"System.Collections": "4.0.11-beta-23409",
"System.Collections.Concurrent": "4.0.11-beta-23409",
"System.IO.Compression": "4.0.1-beta-23409",
"System.Linq": "4.0.1-beta-23409",
"System.Net.Http": "4.0.1-beta-23409",
"System.Net.NameResolution": "4.0.0-beta-23409",
"System.Net.Sockets": "4.1.0-beta-23409",
"System.Net.Requests": "4.0.11-beta-23409",
"System.Net.WebSockets.Client": "4.0.0-beta-23409",
"System.Runtime.InteropServices": "4.0.21-beta-23409",
"System.Text.RegularExpressions": "4.0.11-beta-23409",
"System.Threading": "4.0.11-beta-23409",
"System.Threading.Thread": "4.0.0-beta-23409"
}
}
} }
} }