コード例 #1
0
        private void Message_Received(object sender, MessageReceivedFromServerEventArgs e)
        {
            TcpMessage msg = JsonConvert.DeserializeObject <TcpMessage>(Encoding.UTF8.GetString(e.Data));

            switch (msg.MessageType)
            {
            case MessageType.Message:
                memoEdit1.Invoke((MethodInvoker) delegate
                {
                    memoEdit1.Text += "Server : " + msg.Message + System.Environment.NewLine;
                });
                break;

            case MessageType.LicenseControl:
                break;

            case MessageType.ServerRejection:
                MessageBox.Show(msg.Message);
                Application.Exit();
                break;

            case MessageType.ServerClosed:
                MessageBox.Show(msg.Message);
                Application.Exit();
                break;
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: wildanmuhlis2/WatsonTcp
        private static void MessageReceived(object sender, MessageReceivedFromServerEventArgs args)
        {
            Console.WriteLine("Message from server: " + Encoding.UTF8.GetString(args.Data));

            if (args.Metadata != null && args.Metadata.Count > 0)
            {
                Console.WriteLine("Metadata:");
                foreach (KeyValuePair <object, object> curr in args.Metadata)
                {
                    Console.WriteLine("  " + curr.Key.ToString() + ": " + curr.Value.ToString());
                }
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: hsmcool007/WatsonTcp
 private static void ClientMsgReceived(object sender, MessageReceivedFromServerEventArgs args)
 {
     // Console.WriteLine("[client] msg from server: " + BytesToHex(Md5(args.Data)) + " (" + args.Data.Length + " bytes)");
     try
     {
         string md5 = BytesToHex(Md5(args.Data));
         if (!md5.Equals(_DataLargeMd5) && !md5.Equals(_DataSmallMd5))
         {
             Interlocked.Increment(ref _Failure);
             Console.WriteLine("[client] [msg] [async] Data MD5 validation failed");
         }
         else
         {
             Interlocked.Increment(ref _Success);
             // Console.WriteLine("[client] [msg] [async] Data MD5 validation success: " + md5);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
コード例 #4
0
 private static void ClientMsgReceived(object sender, MessageReceivedFromServerEventArgs args)
 {
     Console.WriteLine("[client] msg from server: " + BytesToHex(Md5(args.Data)) + " (" + args.Data.Length + " bytes)");
 }
コード例 #5
0
 static void MessageReceived(object sender, MessageReceivedFromServerEventArgs args)
 {
     Console.WriteLine("Client received " + args.Data.Length + " bytes from server: MD5 " + Md5(args.Data));
 }
コード例 #6
0
ファイル: Program.cs プロジェクト: syntacs/WatsonTcp
 static void MessageReceived(object sender, MessageReceivedFromServerEventArgs args)
 {
 }
コード例 #7
0
ファイル: Program.cs プロジェクト: syntacs/WatsonTcp
 private static void ClientMsgReceived(object sender, MessageReceivedFromServerEventArgs args)
 {
 }
コード例 #8
0
ファイル: Test2.cs プロジェクト: wildanmuhlis2/WatsonTcp
 private void Test2ClientMsgRcv(object sender, MessageReceivedFromServerEventArgs args)
 {
 }
コード例 #9
0
 static void HandleMessageReceived(object sender, MessageReceivedFromServerEventArgs e)
 {
     Console.WriteLine("Message Recieved");
 }
コード例 #10
0
 private void MessageReceived(object sender, MessageReceivedFromServerEventArgs args)
 {
     MessageReceivedFromServer(sender, args);
 }
コード例 #11
0
ファイル: ClientForm.cs プロジェクト: syntacs/WatsonTcp
 private void MessageReceived(object sender, MessageReceivedFromServerEventArgs e)
 {
     Logger("Message received: " + Encoding.UTF8.GetString(e.Data));
 }
コード例 #12
0
        /// <summary>
        /// Handle message if client recieved anything from server
        ///
        /// The message contain two part,
        /// first part is a identifier (string) to distinguish what type of message is it
        /// second part is the message content
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public static void MessageReceivedFromServer(object sender, MessageReceivedFromServerEventArgs args)
        {
            Console.WriteLine("[NetworkManager-Client] Recieved message from server");
            string[] messages = Encoding.UTF8.GetString(args.Data).Split(new char[] { '_' }, 2);
            try
            {
                Console.Out.WriteLine("[NetworkManager-Client] Recieved message type: " + messages[0]);
                Console.Out.WriteLine("[NetworkManager-Client] The message is: " + messages[1]);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
            }

            switch (messages[0])
            {
            case "autoRestart":
                Console.Out.WriteLine("[NetworkManager-Client] Receiving Auto Restart Request from server, proceed to restart client");

                //disable connection to prevent reconnection to server before restarting
                connectionEnabled = false;



                window.Dispatcher.Invoke(() =>
                {
                    Console.Out.WriteLine("[NetworkManager-Client] Start timer of 15 seconds");
                    DispatcherTimer timer = new DispatcherTimer();
                    timer.Interval        = TimeSpan.FromMinutes(1);
                    timer.Start();
                    timer.Tick += new EventHandler(delegate(object s, EventArgs a)
                    {
                        //only restart if it is a different date
                        if (WindowAutoRestart.isSameDate())
                        {
                            Console.Out.WriteLine("[NetworkManager-Client] It is still yesterday. Wait until auto restart.");
                        }
                        else
                        {
                            Console.Out.WriteLine("[NetworkManager-Client] AutoRestarting...");
                            WindowAutoRestart.AutoRestart();
                            timer.Stop();
                        }
                    });
                });
                break;

            case "setClientNumber":
                Console.Out.WriteLine("[NetworkManager-Client] Receiving Set ClientNumber Request from server, proceed to set self ClientNumber");
                window.Dispatcher.Invoke(() =>
                {
                    clientNumber = int.Parse(messages[1]);
                    Console.Out.WriteLine("[NetworkManager-Client] My client number is:" + clientNumber);
                });
                break;

            case "addAllClientInfo":
                Console.Out.WriteLine("[NetworkManager-Client] Receiving Add All ClientInfo Request from server, proceed to add client view objects for network page");
                window.Dispatcher.Invoke(() =>
                {
                    ClientViewObject.XMLtoClient(XElement.Parse(messages[1]));
                });
                break;

            case "modInjection":
                Console.Out.WriteLine("[NetworkManager-Client] Receiving Mod Injection Request from server, proceed to modify injection");
                window.Dispatcher.Invoke(() =>
                {
                    InjectionsManager.modInjection(XElement.Parse(messages[1]));
                });
                break;

            case "changePatientStatus":
                Console.Out.WriteLine("[NetworkManager-Client] Receiving change PatientStatus Request from server, proceed to change PatientStatus");
                window.Dispatcher.Invoke(() =>
                {
                    //try to splite the message back to (accessionNumber, patientStatus)
                    if (messages[1].Split('^').Length == 2)
                    {
                        InjectionsManager.changePatientStatus(messages[1].Split('^')[0], messages[1].Split('^')[1]);
                    }
                    else
                    {
                        Console.Out.WriteLine("[NetworkManager-Client_changePatientStatus()] Corrupted changePatientStatus message, require 2 input. Message: " + messages[1]);
                    }
                });
                break;

            //////////////////////////////////////////////////
            ////////    Obsolete    //////////////////////////
            case "dischargeInjection":
                Console.Out.WriteLine("[NetworkManager-Client] Receiving Discharge Injection Request from server, proceed to discharge injection");
                window.Dispatcher.Invoke(() =>
                {
#pragma warning disable CS0618 // Type or member is obsolete
                    InjectionsManager.dischargeInjection(messages[1]);
#pragma warning restore CS0618 // Type or member is obsolete
                });
                break;
            //////////////////////////////////////////////////

            case "removeInjection":
                Console.Out.WriteLine("[NetworkManager-Client] Receiving remove Injection Request from server, proceed to remove injection");
                window.Dispatcher.Invoke(() =>
                {
                    InjectionsManager.removeInjection(messages[1]);
                });
                break;

            case "addPatient":
                Console.Out.WriteLine("[NetworkManager-Client] Receiving Add Patient Request from server, proceed to add Patient");
                window.Dispatcher.Invoke(() =>
                {
                    PatientManager.ModPatient(new Patient(XElement.Parse(messages[1])));
                });
                break;

            default:
                Console.Error.WriteLine("[NetworkManager-Client] Unhandled message type: " + messages[0]);
                break;
            }
        }