diff --git a/MMOTestServer/MMOserver/Game/GameServer.cs b/MMOTestServer/MMOserver/Game/GameServer.cs index 26462b5..fa31520 100644 --- a/MMOTestServer/MMOserver/Game/GameServer.cs +++ b/MMOTestServer/MMOserver/Game/GameServer.cs @@ -299,6 +299,17 @@ public class GameServer : ServerBase IntoChannelPacket packet = Serializer.Deserialize(new ReadOnlyMemory(payload)); ChannelManager cm = ChannelManager.Instance; + Channel.Channel channel = cm.GetChannel(packet.ChannelId); + + // 최대 인원 체크 + if (channel.UserCount >= channel.UserCountMax) + { + Log.Warning("[GameServer] INTO_CHANNEL 채널 인원 초과 HashKey={Key} ChannelId={ChannelId} UserCount={Count}/{Max}", + hashKey, packet.ChannelId, channel.UserCount, channel.UserCountMax); + byte[] full = PacketSerializer.Serialize((ushort)PacketCode.INTO_CHANNEL, new IntoChannelPacket { ChannelId = -1 }); + SendTo(peer, full); + return; + } // TODO: 실제 서비스에서는 DB/세션에서 플레이어 정보 로드 필요 Player newPlayer = new Player