룸 내의 유저만 조회 기능 추가
This commit is contained in:
@@ -142,6 +142,8 @@ PacketSet ClientManager::packetParser(Packet Packet) {
|
||||
return PacketSet::ROOMEXITREQUEST;
|
||||
case RequestType::USERS_LIST:
|
||||
return PacketSet::USERSLISTREQUEST;
|
||||
case RequestType::ROOM_USERS_LIST:
|
||||
return PacketSet::ROOMUSERSLISTREQUEST;
|
||||
case RequestType::DATA:
|
||||
return PacketSet::INVALID;
|
||||
}
|
||||
@@ -160,6 +162,8 @@ PacketSet ClientManager::packetParser(Packet Packet) {
|
||||
return PacketSet::ROOMEXITRESPONSE;
|
||||
case RequestType::USERS_LIST:
|
||||
return PacketSet::USERSLISTRESPONSE;
|
||||
case RequestType::ROOM_USERS_LIST:
|
||||
return PacketSet::ROOMUSERSLISTRESPONSE;
|
||||
case RequestType::DATA:
|
||||
return PacketSet::RESPONSE;
|
||||
default:
|
||||
@@ -215,7 +219,7 @@ void ClientManager::processUsersListResponsePacket(UsersListResponsePacket users
|
||||
|
||||
void ClientManager::processDataPostPacket(DataPostPacket dataPostPacket, IOCPPASSINDATA* data) {
|
||||
Snowflake sentUserId;
|
||||
::memcpy(&sentUserId.snowflake, dataPostPacket.__data.destId, sizeof(Snowflake));
|
||||
::memcpy(&sentUserId.snowflake, dataPostPacket.__data.sourceId, sizeof(Snowflake));
|
||||
std::string sentUserName = userNames_[sentUserId];
|
||||
std::string message((char*)dataPostPacket.__data.data, dataPostPacket.__data.packetLength - (sizeof(std::uint16_t) * 5));
|
||||
|
||||
@@ -267,21 +271,41 @@ void ClientManager::registerUser(std::string userName) {
|
||||
}
|
||||
|
||||
void ClientManager::getUserList() {
|
||||
UsersListRequestPacket usersListRequestPacket;
|
||||
usersListRequestPacket.__data.packetType = PacketCategory::PACKET_REQUEST;
|
||||
usersListRequestPacket.__data.requestType = RequestType::USERS_LIST;
|
||||
usersListRequestPacket.__data.dataType = DataType::BINARY;
|
||||
usersListRequestPacket.__data.packetLength = 0;
|
||||
if (inRoom_) {
|
||||
RoomUsersListRequestPacket roomUsersListRequestPacket;
|
||||
roomUsersListRequestPacket.__data.packetType = PacketCategory::PACKET_REQUEST;
|
||||
roomUsersListRequestPacket.__data.requestType = RequestType::ROOM_USERS_LIST;
|
||||
roomUsersListRequestPacket.__data.dataType = DataType::BINARY;
|
||||
roomUsersListRequestPacket.__data.packetLength = sizeof(Snowflake);
|
||||
memcpy(roomUsersListRequestPacket.__data.roomId, &myRoomID_.snowflake, sizeof(Snowflake));
|
||||
|
||||
int packetLength = usersListRequestPacket.__data.packetLength;
|
||||
int packetLength = roomUsersListRequestPacket.__data.packetLength;
|
||||
|
||||
data_->recvbytes = data_->sendbytes = 0;
|
||||
data_->transferredbytes = 0;
|
||||
data_->wsabuf.len = packetLength + 8;
|
||||
data_->recvbytes = data_->sendbytes = 0;
|
||||
data_->transferredbytes = 0;
|
||||
data_->wsabuf.len = packetLength + 8;
|
||||
|
||||
usersListRequestPacket.convToN();
|
||||
memcpy(data_->wsabuf.buf, usersListRequestPacket.serialized, packetLength + 8);
|
||||
iocp_.send(data_, 1, 0);
|
||||
roomUsersListRequestPacket.convToN();
|
||||
memcpy(data_->wsabuf.buf, roomUsersListRequestPacket.serialized, packetLength + 8);
|
||||
iocp_.send(data_, 1, 0);
|
||||
}
|
||||
else {
|
||||
UsersListRequestPacket usersListRequestPacket;
|
||||
usersListRequestPacket.__data.packetType = PacketCategory::PACKET_REQUEST;
|
||||
usersListRequestPacket.__data.requestType = RequestType::USERS_LIST;
|
||||
usersListRequestPacket.__data.dataType = DataType::BINARY;
|
||||
usersListRequestPacket.__data.packetLength = 0;
|
||||
|
||||
int packetLength = usersListRequestPacket.__data.packetLength;
|
||||
|
||||
data_->recvbytes = data_->sendbytes = 0;
|
||||
data_->transferredbytes = 0;
|
||||
data_->wsabuf.len = packetLength + 8;
|
||||
|
||||
usersListRequestPacket.convToN();
|
||||
memcpy(data_->wsabuf.buf, usersListRequestPacket.serialized, packetLength + 8);
|
||||
iocp_.send(data_, 1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void ClientManager::createRoom(std::string roomName) {
|
||||
|
||||
Reference in New Issue
Block a user