void CallCallback(SergIOData data) { if (callbacks.ContainsKey(data.name)) { callbacks[data.name].InvokeCallback(data.data); } }
void ProcessData(Socket thisClient, byte[] _data) { string rData = Encoding.ASCII.GetString(_data); if (!string.IsNullOrWhiteSpace(rData) || !string.IsNullOrEmpty(rData)) { var package = SergIOPacket.Deserialize(rData); LOG(package.json); var data = SergIOData.Deserialize(package.json); LOG($"SERVER received {data.name}"); switch (package.packetType) { case TypeEvent.CONNECT: break; case TypeEvent.NEWCONNECTION: break; case TypeEvent.PONG: break; case TypeEvent.MESSAGE: CallCallback(data); if (!clients.Contains(thisClient)) { clients.Add(thisClient); } EmitPackage(package); break; case TypeEvent.DISCONNECT: EmitPackage(package); clients.Remove(thisClient); DisconnectClient(thisClient); break; } } else { LOG("The data received is empty"); } }
/// <summary> /// Initializes a new instance of the <see cref="T:Serg.IO.Packet.SergIOPacket"/> class. /// </summary> /// <param name="packetType">Packet type.</param> /// <param name="data">Data.</param> public SergIOPacket(TypeEvent packetType, SergIOData data) : this(packetType, JsonConvert.SerializeObject(data)) { }