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)); }
/// <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); } } }
void DataReceived(object sender, DataReceivedFromServerEventArgs e) { SignalLogs.Log($"[Recieved] {SignalUtils.GetGuiSignalName(e.Data)} 0x{Utils.ByteArrayToHexString(e.Data)}"); }
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); } } }