/// <summary> /// Send packet to client. /// </summary> public void BeginSend(string msg, dynamic data) { var p = new Packet(msg, data); var sendBuf = new UTF8Encoding().GetBytes( JsonConvert.SerializeObject(p, Formatting.Indented)); Sock.BeginSend(sendBuf, 0, sendBuf.Length, SocketFlags.None, OnSendCallback, Sock); }
/// <summary> /// Processing requests of client. /// </summary> /// <param name="req"></param> private void ProcessRequest(Packet req) { switch (req.MsgName) { case "OnLoginRequest": GameManager.LoginRequest(this); Console.WriteLine("Request : Login"); break; case "OnMatchingRequest": MatchingData = JsonConvert.DeserializeObject<MatchingPacket>(req.Data); GameManager.MatchingRequest(this); Console.WriteLine("Request : Matching"); break; case "OnMatchingCancelRequest": GameManager.MatchingCancelRequest(this); Console.WriteLine("Request : Matching Cancel"); break; case "OnInGameRequest": InGameData = JsonConvert.DeserializeObject<IngamePacket>(req.Data); Console.WriteLine("Request : Ingame"); break; case "OnExitRequest": Close(); Console.WriteLine("Request : Exit"); break; default: Console.WriteLine("Received MsgName of client is wrong."); break; } }