Ejemplo n.º 1
0
 void HandleConnectingEvent()
 {
     if (ConnectingEvent != null)
     {
         ConnectingEvent.Invoke();
     }
 }
Ejemplo n.º 2
0
 public static void ConnectingPriority([NotNull] EventHandler <PlayerConnectingEventArgs> callback, Priority priority)
 {
     if (callback == null)
     {
         throw new ArgumentNullException("callback");
     }
     ConnectingEvent.Add(callback, priority);
 }
        public void mSendSystemMessage(ConnectingEvent ev)
        {
            if (mLstMessage.Count == 0)
            {
                return;
            }

            ev.Cancel = true;

            Client    sender      = this.clientRepository.GetByID(ev.Message[0].clientId);
            ArrayList messageList = new ArrayList();

            Dictionary <string, object> messagedata = null;

            foreach (MessageStruct.clsSystemMessageStruct lObjMessage in mLstMessage)
            {
                messagedata = new Dictionary <string, object>
                {
                    { "jsMessageTime", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") },
                    { "jsMessageType", MessageIndicator.clsMessageIndicator.MSG_INDC_SERVER_SYSTEM_MESSAGE },
                    { "jsMessageBody", new Dictionary <string, object>
                      {
                          { "jsSystemMessageSrno", lObjMessage.prpLngSystemMessageSrno },
                          { "jsSystemMessageTime", lObjMessage.prpStrSystemMessageTime },
                          { "jsSystemMessageType", "[" + lObjMessage.prpStrSystemMessageType + "]" },
                          { "jsSystemMessage", lObjMessage.prpStrUserName + " : " + lObjMessage.prpStrSystemMessage },
                          { "jsSystemMessageLevel", lObjMessage.prpStrMessageLevel },
                          { "jsSystemMessageUser", lObjMessage.prpStrUserName }
                      } }
                };

                Message message = new Message
                {
                    channel = strChannelName,
                    data    = messagedata
                };
                messageList.Add(message);
            }
            mLstMessage.Clear();

            ev.Message = new Message[messageList.Count];
            messageList.CopyTo(ev.Message);

            foreach (Client subscriber in this.clientRepository.WhereSubscribedTo(strChannelName).Where(c => c.ID != sender.ID))
            {
                subscriber.Enqueue(ev.Message);
                subscriber.FlushQueue();
            }
        }
Ejemplo n.º 4
0
        public MessageHandlerResult HandleMessage(Message request)
        {
            if (!ClientExistsFor(request))
            {
                return(new MessageHandlerResult {
                    Message = GetUnrecognisedClientResponse(request), ShouldWait = false
                });
            }

            Client client = clientRepository.GetByID(request.clientId);

            bool isFirstConnectRequest = !client.IsConnected;

            client.NotifyConnected();

            //处理服务端推入消息
            //修改:jar on 2010-01-25
            Message[]       requestMessage  = { request };
            Message[]       responseMessage = null;
            ConnectingEvent e = new ConnectingEvent(requestMessage);

            EventHub.Publish(e);

            if (e.Cancel)
            {
                ArrayList messageList = new ArrayList();
                messageList.Add(GetSuccessfulResponse(request)[0]);
                foreach (Message message in e.Message)
                {
                    messageList.Add(message);
                }
                ;
                responseMessage = new Message[messageList.Count];
                messageList.CopyTo(responseMessage);
                return(new MessageHandlerResult {
                    Message = responseMessage, ShouldWait = false
                });
            }
            else
            {
                return(new MessageHandlerResult {
                    Message = GetSuccessfulResponse(request), ShouldWait = !isFirstConnectRequest
                });
            }
        }
Ejemplo n.º 5
0
        void StartConnecting(string serverAdress)
        {
            if (serverAdress.Equals("127.0.0.1") || serverAdress.Equals("localhost"))
            {
                m_ServerIp = "127.0.0.1";
                m_State    = ConnectState.Resolved;
            }
            else if (serverAdress.IndexOf(':') != -1 && NetworkUtility.IsValidIpV6(serverAdress))
            {
                m_ServerIp = serverAdress;
                m_State    = ConnectState.Resolved;
            }
            else
            {
                m_State = ConnectState.Resolving;
                Dns.BeginGetHostAddresses(serverAdress, HandleDNSResult, this);
            }

            ConnectingEvent?.Invoke();
        }
Ejemplo n.º 6
0
 void HandleConnectingEvent()
 {
     ConnectingEvent?.Invoke();
 }
Ejemplo n.º 7
0
 public void Handle(ConnectingEvent message)
 {
     IsConnected      = false;
     IsConnecting     = true;
     IsEditingEnabled = false;
 }