Ответ 1
Способ создания SSE - это клиент, открывающий соединение с сервером, который затем остается открытым до тех пор, пока у сервера не будет данных для отправки. Это часть спецификации SSE, а не для ActionController:: Live. Это эффективно так же, как и длительный опрос, но с закрытием соединения после того, как возвращается первый бит данных, и с механизмом, встроенным в браузер.
Таким образом, единственный способ, которым он может быть реализован, заключается в наличии нескольких открытых клиентских подключений к веб-серверу, которые находятся там неограниченно долго. Что касается того, какие ресурсы необходимы для решения этих проблем, я не уверен, так как я еще не пытался сравнивать это, но для Puma потребуется достаточно серверов для того, чтобы открывать тысячи подключений, если у вас есть много пользователей с страница открыта.
Предел по умолчанию для puma - 16 одновременных подключений. Несколько сообщений в блогах о настройке SSE для Rails говорят об увеличении этого значения, но ни один из них, который я нашел, не указывает на то, что должно быть выше. Они упоминают, что количество соединений БД должно быть одинаковым, так как каждый поток Rails поддерживает один из них. Сорт звуков, как дорогой способ запускать вещи.
"Запустить тест" - это единственный ответ.
Я не могу комментировать, как обратное проксирование, поскольку я его не пробовал, но поскольку SSE выполняются по стандартным HTTP, я не должен думать, что для этого потребуется специальная настройка.