// 채팅 보내기 private void button5_Click(object sender, EventArgs e) { if (ClientStatus != CLIENT_STATUS.LOBBY) { MessageBox.Show("채팅은 로비에 입장해야만 가능합니다"); return; } var request = new JsonPacketRequestChat() { Chat = textBoxSendChat.Text }; var bodyData = JsonEnDecode.Encode <JsonPacketRequestChat>(request); PostSendPacket((UInt16)PACKET_ID.REQUEST_CHAT, bodyData); }
// 로그인 하기 private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(textBoxUserID.Text)) { MessageBox.Show("사용할 ID를 입력해 주세요"); return; } var request = new JsonPacketRequestLogin() { ID = textBoxUserID.Text }; var bodyData = JsonEnDecode.Encode <JsonPacketRequestLogin>(request); PostSendPacket((UInt16)PACKET_ID.REQUEST_LOGIN, bodyData); }
/// <summary> /// 패킷 처리 /// </summary> private void ProcessProcket() { var packet = ServerNet.GetPacket(); if (packet == null) { return; } switch (packet.GetPacketType()) { case CgsfNET64Lib.SFPACKET_TYPE.CONNECT: SessionList.Add(packet.SessionID()); DevLog.Write(string.Format("[OnConnect] Serial:{0}", packet.SessionID()), LOG_LEVEL.INFO); break; case CgsfNET64Lib.SFPACKET_TYPE.DISCONNECT: SessionList.Remove(packet.SessionID()); DevLog.Write(string.Format("[OnDisConnect] Serial:{0}", packet.SessionID()), LOG_LEVEL.INFO); break; case CgsfNET64Lib.SFPACKET_TYPE.DATA: switch (packet.PacketID()) { case PACKET_ID_ECHO: var resData = JsonEnDecode.Decode <JsonPacketNoticeEcho>(packet.GetData()); DevLog.Write(string.Format("[Chat] Serial:{0}, Msg:{1}", packet.SessionID(), resData.Msg), LOG_LEVEL.INFO); var request = new JsonPacketNoticeEcho() { Msg = resData.Msg }; var bodyData = JsonEnDecode.Encode <JsonPacketNoticeEcho>(request); ServerNet.SendPacket(packet.SessionID(), PACKET_ID_ECHO, bodyData); break; default: DevLog.Write(string.Format("[ProcessProcket] Invalid PacketID:{0}", packet.PacketID()), LOG_LEVEL.ERROR); break; } break; } }