Esempio n. 1
0
        public MeterCommand Read(DataReceivedFromServerEventArgs message)
        {
            var received = Encoding.UTF8.GetString(message.Data, 0, message.Data.Length);
            var decrypt  = Protector.Decrypt(received, "secret");

            return(JsonSerializer.Deserialize <MeterCommand>(decrypt));
        }
Esempio n. 2
0
        /// <summary>
        /// 서버로부터 데이터 수신 시 발생하는 이벤트 함수
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void MessageReceived(object sender, DataReceivedFromServerEventArgs args)
        {
            if (args.Data != null)
            {
                // 데이터 처리
                byte[] byReturn = new byte[args.Data.Length];
                Array.Copy(args.Data, byReturn, args.Data.Length);
                ReceivedEventArgs ea = new ReceivedEventArgs(byReturn);

                if (Received != null)
                {
                    Received(this, ea);
                }
            }
        }
Esempio n. 3
0
 void DataReceived(object sender, DataReceivedFromServerEventArgs e)
 {
     SignalLogs.Log($"[Recieved] {SignalUtils.GetGuiSignalName(e.Data)} 0x{Utils.ByteArrayToHexString(e.Data)}");
 }
Esempio n. 4
0
 static void DataReceived(object sender, DataReceivedFromServerEventArgs e)
 {
     Console.WriteLine("[" + _ServerIp + ":" + _ServerPort + "] " + Encoding.UTF8.GetString(e.Data));
 }
 public void DataReceived(object sender, DataReceivedFromServerEventArgs e)
 {
     // WIP
     MessageBox.Show(Encoding.UTF8.GetString(e.Data), "client");
 }
        async void MessageReceived(object sender, DataReceivedFromServerEventArgs e)
        {
            var rawData = Encoding.UTF8.GetString(e.Data);
            //check for multiple packets
            var rawPackets = rawData.Split(new char[] { '\r' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var rawPacket in rawPackets)
            {
                _log.AddDebug($"RECV> {rawPacket}");
                dynamic packet;
                //Try and parse JSON
                try
                {
                    packet = JsonConvert.DeserializeObject <dynamic>(rawPacket);
                    switch ((PacketType)packet.type)
                    {
                    case PacketType.ENTER:
                        //Handle ENTER message
                        WriteToChat($"{packet.user} is online", Brushes.GreenYellow);
                        break;

                    case PacketType.LEAVE:
                        //Handle LEAVE message
                        WriteToChat($"{packet.user} is offline", Brushes.GreenYellow);
                        break;

                    case PacketType.MESSAGE:
                        WriteToChat(DateTime.Now.ToString("h:mm tt"), (string)packet.name, (string)packet.message);
                        await PlaySound();

                        break;

                    case PacketType.SYSTEM:
                        WriteToChat((string)packet.message);
                        break;

                    case PacketType.UPDATE:
                        //Handle location update
                        break;

                    case PacketType.AUTH:
                        if ((bool)packet.valid)
                        {
                            clientState = State.Authed;
                        }
                        else
                        {
                            clientState = State.BadAuth;
                            WriteToChat("Auth failed!");
                            WriteToChat((string)packet.reason);
                            client.Dispose();
                        }

                        break;

                    default:
                        throw new Exception("Missing packet type");
                    }
                }
                catch (Exception ex)
                {
                    WriteToChat(ex.Message);
                }
            }
        }