示例#1
0
        public MessageListener(MessageProcessorRegistry registry)
        {
            messageRegistry = registry;

            hostList      = new List <MessageHost>();
            startStopLock = new object();
        }
示例#2
0
        internal MessageTransceiver(MessageProcessorRegistry registry)
        {
            startStopLock   = new object();
            messageHandles  = new ConcurrentDictionary <string, MessageHandle>(StringComparer.Ordinal);
            messageSender   = new MessageSender();
            Processor       = new MessageProcessor(this, registry);
            messageReceiver = new MessageReceiver();

            messageReceiver.MessageReceived += MessageReceiver_MessageReceived;
            messageReceiver.ThreadException += MessageReceiver_OnThreadException;
        }
示例#3
0
        public MessageHost(TcpClient client, MessageProcessorRegistry registry)
        {
            this.Tcp = client;

            isConnected     = true;
            handshakeResult = new TaskCompletionSource <bool>();

            Transceiver = new MessageTransceiver(registry)
            {
                Context = this,
            };

            Transceiver.ThreadException += Transceiver_OnThreadException;
            Transceiver.Start(client);
        }
示例#4
0
        public MessageClient(MessageProcessorRegistry registry)
        {
            Tcp = new TcpClient {
                NoDelay             = true,
                ExclusiveAddressUse = false,
                Client =
                {
                    NoDelay             = true,
                    ExclusiveAddressUse = false
                },
            };

            Transceiver = new MessageTransceiver(registry)
            {
                Context = this,
            };

            Transceiver.ThreadException += Transceiver_OnThreadException;
        }
示例#5
0
 public MessageProcessor(MessageTransceiver transceiver, MessageProcessorRegistry registry)
 {
     this.transceiver = transceiver;
     this.registry    = registry;
 }