Ответ 1
Не менее 250 тыс. одновременных подключений (и для большинства случаев использования узким местом является память)
У меня есть сайт, который реализует broadcast.emit. который отправляет сообщение всем пользователям сайта. Это просто самая простая реализация socket.io, но в настоящее время у меня проблема. Когда я ударил около 100 одновременно работающих пользователей. Сервер nodejs начинает отставать, пока он не висит, что я больше не могу получить доступ ко всему сайту. Когда мы проверили сервер. Узел js принимает 100% CPU. Это нормально?
Мне было интересно, сколько пользователей может поддерживать socket.io? И когда это происходит, есть ли способ перезапустить сервер nodejs программно?
Не менее 250 тыс. одновременных подключений (и для большинства случаев использования узким местом является память)
У меня многопользовательская карточная игра. Socket.io выделяет мой процессор около 3000 одновременно работающих пользователей. Это на процессоре Intel i7. Из-за этого мне нужно запустить несколько процессов node/socket.io для обработки нагрузки.
Для 100 одновременных подключений вы должны быть в порядке. Возможно, вы используете некоторые VPS, а CPU используется совместно со всеми другими виртуальными машинами? Вы запускаете выделенный сервер?
Также проверьте свой код. Вы можете делать синхронно некоторые вещи, которые должны идти асинхронно.
Насколько важно, чтобы вы отправляли сообщения всем клиентам, не отбрасывая их? Если нет, я бы предложил использовать вызов socket.volatile.emit. Проблем с удаленными клиентами и нестабильными подключениями может быть множество.