コード例 #1
0
 void HServerState(TcpMessage Request)
 {
     if (Request.State == 0)
     {
         Msg("Server is closing (" + Request.GetMessageString() + ")");
     }
     else
     {
         Msg("Server is on (" + Request.GetMessageString() + ")");
     }
     OnServerChangeState(Request.State != 0, Request.GetMessageString());
 }
コード例 #2
0
 /// <summary>
 /// Server send some custom data
 /// </summary>
 public void HRequestCustomData(TcpMessage request)
 {
     Msg("Receive custom data");
     if (OnCustomData != null)
     {
         OnCustomData((CustomData)request.State, request.GetMessageString());
     }
 }
コード例 #3
0
 /// <summary>
 /// Text message event
 /// </summary>
 /// <param name="request"></param>
 void HWriteFor(TcpMessage Request)
 {
     Msg("Get message from " + Request.From);
     if (OnChat != null)
     {
         OnChat(Request.From, Request.GetMessageString());
     }
 }
コード例 #4
0
 /// <summary>
 /// Connection state
 /// </summary>
 /// <param name="request"></param>
 void HConnect(TcpMessage Request)
 {
     TryConnected = true;
     if (Request.State != 0)
     {
         Msg("Connect state OK");
         if (OnConnectState != null)
         {
             OnConnectState(true, "");
         }
     }
     else
     {
         string cause = Request.GetMessageString();
         Msg("Connect state failed because " + cause);
         if (OnConnectState != null)
         {
             OnConnectState(false, cause);
         }
     }
 }
コード例 #5
0
        /// <summary>
        /// Handler for write message event
        /// </summary>
        public void HWriteFor(TcpMessage Request)
        {
            IPEndPoint ep = Users[Request.From].EndPoint;

            Users[Request.From].Update();
            // if receiver is not valid
            if (!Users.ContainsKey(Request.To))
            {
                SendRequest(ep, new ResponseUser(Request.To, UserState.UserLogOut).GetBytes());
                Msg("Message resend: Receiver " + Request.To + " is not valid");
                return;
            }
            IPEndPoint receiver = Users[Request.To].EndPoint;
            string     user     = Users.GetKey(ep);

            SendRequest(receiver,
                        new RequestTextMessage(user, Request.To, Request.GetMessageString()).GetBytes());
            Msg("Message resend: from " + Request.From + " to " + Request.To);

            IPEndPoint sender = Users[Request.From].EndPoint;

            SendRequest(sender,
                        new ResponseServerInfo("Message to " + Request.To + " OK").GetBytes());
        }
コード例 #6
0
 void HServerInfo(TcpMessage Request)
 {
     Msg("Server: " + Request.GetMessageString());
 }