Это зависит от множества вещей, таких как ваша инфраструктура, количество ожидаемых пользователей и т. Д. Даже если бы у нас были эти цифры, трудно сказать, какой будет хороший таймаут.
Если вы отправляете только простой массив JSON со списком пользователей, я бы сказал, поэкспериментируйте с задержкой 3-5 секунд и проверите оттуда. Это проблема преждевременной оптимизации - вы пытаетесь решить проблему, которой у вас еще нет.
Однако есть два других возможных решения:
Вы можете только отправить разницу. При опросе вы возвращаете сообщение о том, какие пользователи подключились, а какие оставили с момента последнего опроса. Это требует некоторого отслеживания сервера, но может быть сделано.
Другое решение состоит в том, чтобы вообще не использовать опрос и использовать более современную технологию, такую как WebSockets / Long-polling. Это позволит серверу самому отправлять сообщения вашим клиентам. Таким образом, вы можете отправить им начальный список, когда они подключаются, и одно минимальное сообщение каждый раз, когда кто-то подключается / уходит. Отличным решением этой проблемы в среде Node является Socket.IO . Я не очень разбираюсь в Ruby, поэтому я не знаю, делал ли кто-то подобное, но я не удивлюсь, если кто-то перенес все это на Rails. Обыщите, я уверен, вы найдете то, что соответствует вашим потребностям.