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()); }
/// <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()); } }
/// <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()); } }
/// <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); } } }
/// <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()); }
void HServerInfo(TcpMessage Request) { Msg("Server: " + Request.GetMessageString()); }