|
|
@ -85,13 +85,18 @@ namespace Core |
|
|
|
{ |
|
|
|
{ |
|
|
|
LoginRequestPacket requestPacket = new LoginRequestPacket(dataBuffer); |
|
|
|
LoginRequestPacket requestPacket = new LoginRequestPacket(dataBuffer); |
|
|
|
|
|
|
|
|
|
|
|
bool result = Clients.TryAdd(requestPacket.Id, clientSocket); |
|
|
|
Clients.AddOrUpdate(requestPacket.Id, clientSocket, (oldKey, oldValue) => |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
DuplicatePacket packet = new DuplicatePacket(); |
|
|
|
|
|
|
|
oldValue.Send(packet.Serialize()); |
|
|
|
|
|
|
|
return clientSocket; |
|
|
|
|
|
|
|
}); |
|
|
|
Console.WriteLine($"[{DateTime.Now}] LoginRequest - Id: {requestPacket.Id}, Nickname: {requestPacket.NickName}"); |
|
|
|
Console.WriteLine($"[{DateTime.Now}] LoginRequest - Id: {requestPacket.Id}, Nickname: {requestPacket.NickName}"); |
|
|
|
|
|
|
|
|
|
|
|
id = requestPacket.Id; |
|
|
|
id = requestPacket.Id; |
|
|
|
nickname = requestPacket.NickName; |
|
|
|
nickname = requestPacket.NickName; |
|
|
|
|
|
|
|
|
|
|
|
LoginResponsePacket responsePacket = new LoginResponsePacket(result ? StatusCode.Success : StatusCode.Failed); |
|
|
|
LoginResponsePacket responsePacket = new LoginResponsePacket(StatusCode.Success); |
|
|
|
await clientSocket.SendAsync(responsePacket.Serialize(), SocketFlags.None); |
|
|
|
await clientSocket.SendAsync(responsePacket.Serialize(), SocketFlags.None); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (packetType == PacketType.CreateRoomRequest) |
|
|
|
else if (packetType == PacketType.CreateRoomRequest) |
|
|
@ -201,7 +206,9 @@ namespace Core |
|
|
|
|
|
|
|
|
|
|
|
private async Task Remove(string id, string nickname, string roomName, Socket clientSocket) |
|
|
|
private async Task Remove(string id, string nickname, string roomName, Socket clientSocket) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Clients.TryRemove(id, out _); |
|
|
|
if (Clients.TryGetValue(id, out var client) && client == clientSocket) |
|
|
|
|
|
|
|
Clients.TryRemove(id, out _); |
|
|
|
|
|
|
|
|
|
|
|
if (Rooms.TryGetValue(roomName, out var room)) |
|
|
|
if (Rooms.TryGetValue(roomName, out var room)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
UserLeavePacket packet = new UserLeavePacket(nickname); |
|
|
|
UserLeavePacket packet = new UserLeavePacket(nickname); |
|
|
|