/trunk/WingMan/Bindings/KeyBindingsSynchronizer.cs |
@@ -5,6 +5,7 @@ |
using System.Linq; |
using System.Threading; |
using System.Threading.Tasks; |
using MQTTnet; |
using WingMan.Communication; |
|
namespace WingMan.Bindings |
@@ -45,15 +46,13 @@ |
public event MouseKeyBindingsSynchronized OnMouseKeyBindingsSynchronized; |
|
private async void MqttCommunicationOnMessageReceived(object sender, |
MqttCommunicationMessageReceivedEventArgs e) |
MqttApplicationMessageReceivedEventArgs e) |
{ |
if (e.Topic != "exchange") |
if (e.ApplicationMessage.Topic != "exchange") |
return; |
|
using (var memoryStream = new MemoryStream()) |
using (var memoryStream = new MemoryStream(e.ApplicationMessage.Payload)) |
{ |
await e.PayloadStream.CopyToAsync(memoryStream); |
|
memoryStream.Position = 0L; |
|
var mouseKeyBindingsExchange = |
@@ -101,4 +100,4 @@ |
} while (!CancellationToken.IsCancellationRequested); |
} |
} |
} |
} |
/trunk/WingMan/Bindings/KeySimulator.cs |
@@ -4,6 +4,7 @@ |
using System.Threading.Tasks; |
using WindowsInput; |
using WindowsInput.Native; |
using MQTTnet; |
using WingMan.Communication; |
using WingMan.Utilities; |
|
@@ -40,17 +41,13 @@ |
|
public event MouseKeyBindingExecuting OnMouseKeyBindingExecuting; |
|
private async void OnMqttMessageReceived(object sender, MqttCommunicationMessageReceivedEventArgs e) |
private async void OnMqttMessageReceived(object sender, MqttApplicationMessageReceivedEventArgs e) |
{ |
if (e.Topic != "execute") |
if (e.ApplicationMessage.Topic != "execute") |
return; |
|
using (var memoryStream = new MemoryStream()) |
using (var memoryStream = new MemoryStream(e.ApplicationMessage.Payload)) |
{ |
await e.PayloadStream.CopyToAsync(memoryStream); |
|
memoryStream.Position = 0L; |
|
var executeMouseKeyBinding = |
(ExecuteKeyBinding) ExecuteKeyBinding.XmlSerializer.Deserialize(memoryStream); |
|
@@ -103,4 +100,4 @@ |
} |
} |
} |
} |
} |
/trunk/WingMan/Communication/MqttCommunication.cs |
@@ -30,7 +30,7 @@ |
|
public delegate void ClientUnsubscribed(object sender, MqttClientUnsubscribedTopicEventArgs e); |
|
public delegate void MessageReceived(object sender, MqttCommunicationMessageReceivedEventArgs e); |
public delegate void MessageReceived(object sender, MqttApplicationMessageReceivedEventArgs e); |
|
public delegate void ServerAuthenticationFailed(object sender, MqttAuthenticationFailureEventArgs e); |
|
@@ -190,19 +190,20 @@ |
{ |
using (var lz4Decompress = new LZ4Stream(decryptedStream, CompressionMode.Decompress)) |
{ |
var outpuStream = new MemoryStream(); |
await lz4Decompress.CopyToAsync(outpuStream); |
using (var outpuStream = new MemoryStream()) |
{ |
await lz4Decompress.CopyToAsync(outpuStream); |
|
outpuStream.Position = 0L; |
outpuStream.Position = 0L; |
|
await Task.Delay(0, CancellationToken).ContinueWith( |
_ => OnMessageReceived?.Invoke(sender, |
new MqttCommunicationMessageReceivedEventArgs(e.ApplicationMessage.Topic, |
outpuStream)), |
CancellationToken, TaskContinuationOptions.None, TaskScheduler); |
e.ApplicationMessage.Payload = outpuStream.ToArray(); |
} |
} |
} |
} |
|
await Task.Delay(0, CancellationToken).ContinueWith(_ => OnMessageReceived?.Invoke(sender, e), |
CancellationToken, TaskContinuationOptions.None, TaskScheduler); |
} |
catch (Exception ex) |
{ |
@@ -291,19 +292,20 @@ |
{ |
using (var lz4Decompress = new LZ4Stream(decryptedStream, CompressionMode.Decompress)) |
{ |
var outpuStream = new MemoryStream(); |
await lz4Decompress.CopyToAsync(outpuStream); |
using (var outpuStream = new MemoryStream()) |
{ |
await lz4Decompress.CopyToAsync(outpuStream); |
|
outpuStream.Position = 0L; |
outpuStream.Position = 0L; |
|
await Task.Delay(0, CancellationToken).ContinueWith( |
_ => OnMessageReceived?.Invoke(sender, |
new MqttCommunicationMessageReceivedEventArgs(e.ApplicationMessage.Topic, |
outpuStream)), |
CancellationToken, TaskContinuationOptions.None, TaskScheduler); |
e.ApplicationMessage.Payload = outpuStream.ToArray(); |
} |
} |
} |
} |
|
await Task.Delay(0, CancellationToken).ContinueWith(_ => OnMessageReceived?.Invoke(sender, e), |
CancellationToken, TaskContinuationOptions.None, TaskScheduler); |
} |
catch (Exception ex) |
{ |
/trunk/WingMan/Lobby/LobbyMessageSynchronizer.cs |
@@ -2,6 +2,7 @@ |
using System.IO; |
using System.Threading; |
using System.Threading.Tasks; |
using MQTTnet; |
using WingMan.Communication; |
|
namespace WingMan.Lobby |
@@ -33,17 +34,13 @@ |
public event LobbyMessageReceived OnLobbyMessageReceived; |
|
private async void MqttCommunicationOnOnMessageReceived(object sender, |
MqttCommunicationMessageReceivedEventArgs e) |
MqttApplicationMessageReceivedEventArgs e) |
{ |
if (e.Topic != "lobby") |
if (e.ApplicationMessage.Topic != "lobby") |
return; |
|
using (var memoryStream = new MemoryStream()) |
using (var memoryStream = new MemoryStream(e.ApplicationMessage.Payload)) |
{ |
await e.PayloadStream.CopyToAsync(memoryStream); |
|
memoryStream.Position = 0L; |
|
var lobbyMessage = (LobbyMessage) LobbyMessage.XmlSerializer.Deserialize(memoryStream); |
|
await Task.Delay(0) |
@@ -70,4 +67,4 @@ |
} |
} |
} |
} |
} |