public void Process() //todo refactoring { try { Stream = _client.GetStream(); while (true) { var message = Stream.GetMessageBytes(); if (message.Length == 0) { break; } message.GetRequestInfo(out var data, out var itemId, out var roomId, out var queryType); Console.WriteLine($"{itemId} {queryType} {data.Length}"); if (queryType == QueryType.GetAll) { if (GameRoomManager.GetIfExistsRoom(roomId)) { foreach (var roomData in GameRoomManager.GetData(roomId)) { _server.Send(this, roomData); } } continue; } GameRoomManager.Save(roomId, itemId, data, queryType); _server.BroadcastMessage(data, Id); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { _server.RemoveConnection(Id); Close(); } }