0

Всем доброго времени суток, дорогие программисты. Сижу, ломаю голову над тем, как реализовать серверный тик. У меня есть подключенные на сервер 1к клиентов. У всех есть поток на чтение от клиента. И метод на отправку пакетов. У каждого клиента есть свой Stack сборщик пакетов. Все запросы передвижения, или иные действия которые должны обрабатываться как на сервере и на клиенте хранятся временно там. Этот стек пополняется от запросов клиента. Клиент делает запрос на атаку монстра. Сервер обрабатывает его. Инициализирует бой и отсылает уже результат в Stack сборщик для ожидания отправки всем клиентам. (Те, которые видны по близости, но это не важно). Серверный тик, должен за 1 секунду отправить не больше 30 пакетов от всех клиентов. Те которые отправились естественно очищаются в хранилища. И после секунды еще 30 пакетов. И т.д.

Мне предложили создать Timer, который вызывает обработчик события раз в секунду. В этом обработчике уже иметь ссылку на всех клиентов и отправлять все пакеты. Я не понимаю как можно сделать чтобы он успел или не успел взять всех в прогон клиентов и отправить или проигнорировать если хранилище пусто?

Помогите примером. Хотя бы простым. Чтобы я суть уловил. Спасибо

MRXIT
  • 84
  • я ничего не понял, ес честно. Если вам надо что то делаеть каждую секунду, то у вас по сути 2 варианта: таймер или цикл. – tym32167 May 04 '22 at 16:15
  • Если опустить всю лирику о правильности того что вы делаете, то ответом на ваш вопрос является шаблон проектирования Producer/Consumer. По сути цикл со счетчиком, включающий паузу при достижении какого-то порогового значения. И я запутался в ваших отправках-получениях, то есть логики не понял, примерно совсем. Есть такой пример цикла, но это я в угадайку играю. – aepot May 04 '22 at 16:46

0 Answers0