ServerPacketData 클래스
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CSBaseLib;
using MessagePack;
namespace ChatServer
{
public class ServerPacketData
{
public Int16 PacketSize;
public string SessionID;
public Int16 PacketID;
public SByte Type;
public byte[] BodyData;
Assign
public void Assign(string sessionID, Int16 packetID, byte[] packetBodyData)
{
SessionID = sessionID;
PacketID = packetID;
if (packetBodyData.Length > 0)
{
BodyData = packetBodyData;
}
}
MakeNTFInConnectOrDisConnectClientPacket
public static ServerPacketData MakeNTFInConnectOrDisConnectClientPacket(bool isConnect, string sessionID)
{
var packet = new ServerPacketData();
if (isConnect)
{
packet.PacketID = (Int32)PACKETID.NTF_IN_CONNECT_CLIENT;
}
else
{
packet.PacketID = (Int32)PACKETID.NTF_IN_DISCONNECT_CLIENT;
}
packet.SessionID = sessionID;
return packet;
}
- 자기 자신 클래스인 ServerPacketData 클래스를 선언함
- 연결이 되어있으면 만든 패킷에 아이디를 Connect로 하고 연결 안되어있으면 Disconnect로 함
- 패킷의 세션ID 설정
- 만든 패킷 반환
MessagePack용 클래스?
[MessagePackObject]
public class PKTInternalReqRoomEnter
{
[Key(0)]
public int RoomNumber;
[Key(1)]
public string UserID;
}
[MessagePackObject]
public class PKTInternalResRoomEnter
{
[Key(0)]
public ERROR_CODE Result;
[Key(1)]
public int RoomNumber;
[Key(2)]
public string UserID;
}
[MessagePackObject]
public class PKTInternalNtfRoomLeave
{
[Key(0)]
public int RoomNumber;
[Key(1)]
public string UserID;
}
- 패킷을 직렬화-역직렬화 할 때 쓰기 위한 MemoryPack용 클래스?
- Internal이 붙은걸로 봐서 서버 내부에서 사용하는 패킷들