From 514460781b859432b1c06be0f501768ad8c2d21d Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Tue, 13 Oct 2020 10:23:06 +0200 Subject: [PATCH 1/3] added switch for incoming network data --- Server/Models/Information.cs | 3 +++ Server/Models/ServerClient.cs | 18 +++++++++++++++++- Server/ViewModels/MainViewModel.cs | 6 +++++- Server/Views/MainWindow.xaml | 7 +++++-- Server/img/offline.png | Bin 0 -> 762 bytes Server/img/online.png | Bin 0 -> 742 bytes 6 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 Server/img/offline.png create mode 100644 Server/img/online.png diff --git a/Server/Models/Information.cs b/Server/Models/Information.cs index 8f41ba9..eb2b690 100644 --- a/Server/Models/Information.cs +++ b/Server/Models/Information.cs @@ -4,6 +4,7 @@ namespace Server.Models { public class Information : ObservableObject { + public bool CanStartServer { get; set; } public bool ServerOnline { get; set; } @@ -15,5 +16,7 @@ namespace Server.Models return "Offline"; } } + + public int ClientsConnected{ get; set; } } } \ No newline at end of file diff --git a/Server/Models/ServerClient.cs b/Server/Models/ServerClient.cs index 4db4128..bb8f2e9 100644 --- a/Server/Models/ServerClient.cs +++ b/Server/Models/ServerClient.cs @@ -84,7 +84,23 @@ namespace Server.Models /// the incoming message private void HandleIncomingMessage(byte[] message) { - Debug.WriteLine($"Got message from client : {message}"); + Debug.WriteLine($"Got message from {Username} : {message}"); + byte id = message[0]; + switch(id) + { + case 0x01: + // canvas data + break; + case 0x02: + // message data + break; + case 0x03: + // json data + break; + default: + Debug.WriteLine("Received weird identifier: " + id); + break; + } //TODO implement ways to handle the message } diff --git a/Server/ViewModels/MainViewModel.cs b/Server/ViewModels/MainViewModel.cs index 7652c38..bd7d0a4 100644 --- a/Server/ViewModels/MainViewModel.cs +++ b/Server/ViewModels/MainViewModel.cs @@ -9,6 +9,7 @@ using System.Net.Sockets; using System.Text; using System.Windows.Input; using System.Windows.Media; +using System.Windows.Media.Imaging; namespace Server.ViewModels { @@ -24,8 +25,11 @@ namespace Server.ViewModels this.mainWindow = mainWindow; Debug.WriteLine("init mainviewmodel"); InformationModel = new Information(); + InformationModel.ClientsConnected = 0; InformationModel.CanStartServer = true; InformationModel.ServerOnline = false; + //BitmapImage onlineImg = new BitmapImage(new Uri(@"/img/online.png",UriKind.Relative)); + //BitmapImage offlineImg = new BitmapImage(new Uri(@"/img/offline.png", UriKind.Relative)); this.ServerStartCommand = new RelayCommand(() => { @@ -38,7 +42,7 @@ namespace Server.ViewModels if (!serverCommunication.Started) { - Debug.WriteLine("can start server " + InformationModel.CanStartServer); + serverCommunication.Start(); InformationModel.ServerOnline = true; InformationModel.CanStartServer = false; diff --git a/Server/Views/MainWindow.xaml b/Server/Views/MainWindow.xaml index 4cb49fb..5ff94af 100644 --- a/Server/Views/MainWindow.xaml +++ b/Server/Views/MainWindow.xaml @@ -8,8 +8,11 @@ Title="MainWindow" Height="450" Width="800">