snowflake id가 이상하게 생성되는 문제 해결결

This commit is contained in:
2025-05-04 14:50:52 +09:00
parent e0a371d536
commit 8ffe3a7519
3 changed files with 26 additions and 11 deletions

View File

@@ -53,6 +53,7 @@ public:
}
void processresponsePacket(ResponsePacket responsePacket, IOCPPASSINDATA* data);
void processLoginResponsePacket(LoginResponsePacket loginResponsePacket, IOCPPASSINDATA* data);
void processRoomCreateResponsePacket(RoomCreateResponsePacket roomCreateResponsePacket, IOCPPASSINDATA* data);
void processRoomListResponse(RoomListResponsePacket roomListResponsePacket, IOCPPASSINDATA* data);
void processRoomJoinResponsePacket(RoomJoinResponsePacket roomJoinResponsePacket, IOCPPASSINDATA* data);

View File

@@ -31,7 +31,13 @@ void ClientManager::_IOCPClient(Chattr::ThreadPool* thread, Chattr::IOCPPASSINDA
PacketSet packetSet = packetParser(pack);
pack.convToN();
switch (packetSet) {
case PacketSet::LOGINRESPONSE:
case PacketSet::LOGINRESPONSE: {
LoginResponsePacket loginResponsePacket;
std::memcpy(&loginResponsePacket.serialized, &pack.serialized, 8 + packetLength);
loginResponsePacket.convToH();
processLoginResponsePacket(loginResponsePacket, data);
}
break;
case PacketSet::ROOMCREATERESPONSE:
case PacketSet::ROOMLISTRESPONSE:
case PacketSet::ROOMJOINRESPONSE:
@@ -152,6 +158,11 @@ void ClientManager::processresponsePacket(ResponsePacket responsePacket, IOCPPAS
// data->IOCPInstance->send(data, 1, 0);
}
void ClientManager::processLoginResponsePacket(LoginResponsePacket loginResponsePacket, IOCPPASSINDATA* data) {
::memcpy(&myID_.snowflake, loginResponsePacket.__data.yourId, sizeof(Snowflake));
}
void ClientManager::processRoomCreateResponsePacket(RoomCreateResponsePacket roomCreateResponsePacket, Chattr::IOCPPASSINDATA* data) {
// std::string roomName(
// (char*)roomCreateResponsePacket.__data.data,