コード例 #1
0
 /// <summary>
 /// Creates a new RequestReplyMessenger.
 ///
 /// </summary>
 /// <param name="messenger">IMessenger object to use as underlying communication</param>
 public RequestReplyMessenger(T messenger)
 {
     this.Messenger                 = messenger;
     messenger.MessageReceived     += new EventHandler <MessageEventArgs>(this.Messenger_MessageReceived);
     messenger.MessageSent         += new EventHandler <MessageEventArgs>(this.Messenger_MessageSent);
     this._incomingMessageProcessor = new SequentialItemProcessor <IScsMessage>(new Action <IScsMessage>(this.OnMessageReceived));
     this._waitingMessages          = new SortedList <string, RequestReplyMessenger <T> .WaitingMessage>();
     this.Timeout = 60000;
 }
コード例 #2
0
 /// <summary>
 /// Creates a new RequestReplyMessenger.
 /// </summary>
 /// <param name="messenger">IMessenger object to use as underlying communication</param>
 public RequestReplyMessenger(T messenger)
 {
     Messenger = messenger;
     messenger.MessageReceived += Messenger_MessageReceived;
     messenger.MessageSent     += Messenger_MessageSent;
     _incomingMessageProcessor  = new SequentialItemProcessor <IScsMessage>(OnMessageReceived);
     _waitingMessages           = new SortedList <string, WaitingMessage>();
     Timeout = DefaultTimeout;
 }
コード例 #3
0
ファイル: ClientSession.cs プロジェクト: Martazza/OpenNos
        public ClientSession(NetworkClient client)
        {
            _client = client;

            //absolutely new instantiated Client has no SessionId
            SessionId = 0;

            //register for NetworkClient events
            _client.MessageReceived += NetworkClient_MessageReceived;

            //start queue
            _queue = new SequentialItemProcessor<byte[]>(HandlePacket);
            _queue.Start();
        }
コード例 #4
0
        public ClientSession(NetworkClient client)
        {
            _client = client;

            //absolutely new instantiated Client has no SessionId
            SessionId = 0;

            //register for NetworkClient events
            _client.MessageReceived += NetworkClient_MessageReceived;

            //start queue
            _queue = new SequentialItemProcessor <byte[]>(HandlePacket);
            _queue.Start();
        }
コード例 #5
0
        internal MiddlewareCorelogicLayer()
        {
            _binProcessferProcessor         = new BinTransferLayer(this);
            _middlewareCommunicateProcessor = new MiddlewareCommunicateLayer(this);
            _groupCommunicateProcessor      = new GroupCommunicateLayer(this);
            mMiddlewareMessenger            = MiddlewareMessenger.Instance;

            _asynSendRequestRunner = new SequentialItemProcessor <RequestCommunicatePackage>(this.__CoAsynSendRequestRunning);
            _asynFeedbackCommunicateReplyMessageRunner = new SequentialItemProcessor <ReplyCommunicatePackage>(this.__AsynFeedbackCommunicateReplyMessageRunning);
            _asynGetGroupRunner    = new SequentialItemProcessor <KeyValuePair <string, GroupDevice> >(this.__AsynCoGetGroupRunning);
            _asynJoinGroupRunner   = new SequentialItemProcessor <KeyValuePair <GroupDevice, GroupMemberRole> >(this.__CoAsynJoinGroupRunning);
            _asynExitGroupRunner   = new SequentialItemProcessor <GroupDevice>(this.__CoAsynExitGroupRunning);
            _asynRadioRunner       = new SequentialItemProcessor <GroupComunicatePackage>(this.__CoAsynRadioRunning);
            _asynCreategroupRunner = new SequentialItemProcessor <KeyValuePair <string, GroupDevice> >(this.__CoAsynCreateGroupRunning);
        }
コード例 #6
0
        public ClientSession(NetworkClient client)
        {
            _client = client;

            //absolutely new instantiated Client has no SessionId
            SessionId = 0;

            //register for NetworkClient events
            _client.MessageReceived += NetworkClient_MessageReceived;

            //start queue
            _queue = new SequentialItemProcessor <byte[]>(HandlePacket);
            _queue.Start();

            //register WCF events
            ServiceFactory.Instance.CommunicationCallback.CharacterConnectedEvent    += CommunicationCallback_CharacterConnectedEvent;
            ServiceFactory.Instance.CommunicationCallback.CharacterDisconnectedEvent += CommunicationCallback_CharacterDisconnectedEvent;
        }
コード例 #7
0
        public ClientSession(INetworkClient client)
        {
            // set last received
            lastPacketReceive = DateTime.Now.Ticks;

            // initialize network client
            _client = client;

            // absolutely new instantiated Client has no SessionId
            SessionId = 0;

            // register for NetworkClient events
            _client.MessageReceived += OnNetworkClientMessageReceived;

            // start queue
            _queue = new SequentialItemProcessor <byte[]>(HandlePacket);
            _queue.Start();
        }
コード例 #8
0
ファイル: ClientSession.cs プロジェクト: PsykoBoss/OpenNos
        // private Task taskPacketReceived;

        #region Instantiation

        public ClientSession(INetworkClient client)
        {
            // set last received
            lastPacketReceive = DateTime.Now.Ticks;

            // lag mode
            _random = new Random((int)client.ClientId);

            // initialize lagging mode
            IsLagMode = System.Configuration.ConfigurationManager.AppSettings["LagMode"].ToLower() == "true";

            // initialize network client
            _client = client;

            // absolutely new instantiated Client has no SessionId
            SessionId = 0;

            // register for NetworkClient events
            _client.MessageReceived += OnNetworkClientMessageReceived;

            // start queue
            _queue = new SequentialItemProcessor <byte[]>(HandlePacket);
            _queue.Start();
        }