Однажды я создал программу на Java, приложение для чата, чтобы каждое соединение с сервером, которое было установлено, представляло новый поток на сервере для управления данным клиентом.
Внутри класса Server была статическая переменная, управляющая подключением клиентов.
Я не знаю, является ли рекомендуемый подход к различным технологиям правильным способом ответа на ваш вопрос, но яПодумайте, что для вашего случая было бы неплохо взглянуть на платформу Erlang / Elixir , исходя из того, что она способна одновременно удерживать множество клиентов.
В настоящее время крупные компании, такие как Whatsapp, используют Erlang и Discord Elixir.
Я надеюсь, что мой ответ был полезным.