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