Я сделал довольно простую пошаговую многопользовательскую веб-игру в апплете.У меня вопрос по поводу производительности.Я заметил, что между игроком, выполняющим свою очередь, и остальными игроками, видевшими все обновления, был очень большой разрыв.Один ход / действие может длиться до 10 секунд.
Игра запускается на выделенном сервере, и все игроки подключаются к серверу в качестве клиентов.Когда один игрок берет свой ход, каждое движение / действие отправляется на сервер, а затем с сервера на все остальные клиенты.Сервер обычно отправляет обновления в виде полных объектов игрового состояния, но также отправляет сообщения String.У клиента есть отдельный поток для прослушивания этих обновлений.Все это делается через сокетное соединение и постоянные потоки ввода / вывода объектов.
В моей попытке отследить узкое место я понял, что если я запускаю апплет из Eclipse (нажимая «запустить как апплет»)) задержки практически нет.Таким образом, это означает, что клиентские апплеты отправляют обновления, а сервер получает их, а затем отправляет свои обновления идеально.Узкое место должно быть в получении / обработке апплета этих обновлений.
У меня было два Chrome-апплета и два Eclipse-апплета, открытых в одной и той же игре.Я бы сделал шаг к любому из них, и два апплета Eclipse мгновенно получили бы обновление сервера, а апплетам Chrome потребовалось бы 10 секунд, чтобы получить одно обновление.
Есть ли что-то импортное по-разномуо том, как апплет работает в браузере против Eclipse?Я знаю, что Eclipse запускает апплет из локальных файлов, но разве веб-апплет не загружает все соответствующие файлы при запуске?Спасибо за вашу помощь.Дайте мне знать, поможет ли публикация некоторых из моих кодов.