Example #1
0
        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;
                    }
                }
            }
        }