private void perConnection(Socket client) { int recv = 0; byte[] data = new byte[1024]; while (true) { recv = 0; data = new byte[1024]; try { recv = client.Receive(data); } catch (SocketException e) { break; } string messageSendFromClient = Encoding.ASCII.GetString(data, 0, recv); string[] messageParts = messageSendFromClient.Split(",".ToCharArray()); Console.WriteLine(messageSendFromClient); if (!string.IsNullOrEmpty(messageParts[0])) { switch (messageParts[0]) { case "Connect": _deadLetterChannel.Check(messageParts[1], client); break; case "Subscribe": if (!string.IsNullOrEmpty(messageParts[1])) { Subscriber subscriber = new Subscriber(); subscriber.ID = messageParts[2]; subscriber.Client = client; TransientData.AddSubscriber(messageParts[1], subscriber); _deadLetterChannel.Check(messageParts[2], client); } break; case "UnSubscribe": if (!string.IsNullOrEmpty(messageParts[1])) { Subscriber subscriber = new Subscriber(); subscriber.ID = messageParts[2]; subscriber.Client = client; TransientData.RemoveSubscriber(messageParts[1], subscriber); } break; } } } }