Пример #1
0
        public static void PollSocket(this ConnectedUser connectedUser, ITcpMessageProcessorCache tcpMessageProcessorCache)
        {
            if (!connectedUser.TcpClient.Connected)
            {
                return;
            }

            var stream = connectedUser.TcpClient.GetStream();

            if (!stream.CanRead || !stream.DataAvailable)
            {
                return;
            }

            var prefixBuffer      = new byte[4];
            var messageTypeBuffer = new byte[1];

            stream.Read(prefixBuffer, 0, 4);
            stream.Read(messageTypeBuffer, 0, 1);

            var length = BitConverter.ToInt32(prefixBuffer, 0);
            var buffer = new byte[length];

            stream.Read(buffer, 0, length);

            var processor = tcpMessageProcessorCache.GetApplicableProcessor((MessageType)messageTypeBuffer.First());

            processor.Execute(connectedUser, Encoding.ASCII.GetString(buffer));
        }
Пример #2
0
        public static void PollSocket(this ConnectedUser connectedUser, ITcpMessageProcessorCache tcpMessageProcessorCache)
        {
            if (!connectedUser.TcpClient.Connected)
                return;

            var stream = connectedUser.TcpClient.GetStream();
            if (!stream.CanRead || !stream.DataAvailable)
                return;

            var prefixBuffer = new byte[4];
            var messageTypeBuffer = new byte[1];

            stream.Read(prefixBuffer, 0, 4);
            stream.Read(messageTypeBuffer, 0, 1);

            var length = BitConverter.ToInt32(prefixBuffer, 0);
            var buffer = new byte[length];

            stream.Read(buffer, 0, length);

            var processor = tcpMessageProcessorCache.GetApplicableProcessor((MessageType)messageTypeBuffer.First());
            processor.Execute(connectedUser, Encoding.ASCII.GetString(buffer));
        }
Пример #3
0
 public TcpListenerService(IConnectionService connectionService, ITcpMessageProcessorCache tcpMessageProcessorCache)
 {
     _connectionService = connectionService;
     _tcpMessageProcessorCache = tcpMessageProcessorCache;
 }
Пример #4
0
 public ConnectionService(ITcpMessageProcessorCache tcpMessageProcessorCache)
 {
     _tcpMessageProcessorCache = tcpMessageProcessorCache;
 }
Пример #5
0
 public TcpListenerService(IConnectionService connectionService, ITcpMessageProcessorCache tcpMessageProcessorCache)
 {
     _connectionService        = connectionService;
     _tcpMessageProcessorCache = tcpMessageProcessorCache;
 }
Пример #6
0
 public ConnectionService(ITcpMessageProcessorCache tcpMessageProcessorCache)
 {
     _tcpMessageProcessorCache = tcpMessageProcessorCache;
 }