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"); } }
void EmitPackage(SergIOPacket packet) { if (!IsServerRunning) { return; } LOG("Prepare to send data"); try { byte[] b = packet.Seralize().GetBytes(); foreach (var c in clients) { if (c.Connected) { c.Send(b); } } }catch (Exception e) { LOG(e.ToString()); } LOG("End sending Data"); }