С точки зрения веб-приложений (и расширения Rails приложений), в режиме реального времени это всего лишь иллюзия. Длительный опрос - очень близкое приближение. К сожалению, он не очень подходит для Rails. Тем более что Пассажир.
Для долгого опроса требуется постоянное открытое соединение для каждого пользователя, которое не масштабируется на серверах, которые не были предназначены для его обработки (например, Apache). К сожалению, на самом деле существует множество серверов, предназначенных для долгой масштабируемости, которые хорошо сочетаются с Rails. Вы можете попробовать сервер Shooting-Star, но я действительно не знаю, как его производительность сравнивается с Passenger для ваших стандартных запросов.
Мое личное мнение о длительном опросе - это решение, нуждающееся в решении проблемы.
Действительно вы должны задать себе следующие вопросы:
- эти обновления достаточно высокий приоритет, что они не могут ждать 40 секунд?
- Что произойдет, если обновления не будут получены немедленно?
- Могут ли мои пользователи так сосредоточиться на моем приложении, что ожидание 15 секунд повлияет на их опыт отрицательно?
- Какой процент внимания пользователя привлекает мое приложение при нормальном использовании?
- Сколько времени требуется, чтобы отвечать на обновления?
- Действительно ли действительно должно быть в режиме реального времени?
Некоторые из этих вопросов задают другие вопросы по-другому, но это необходимо с такими субъективными вопросами.
Я думаю, вы видите, что я получаю: Обновления в реальном времени очень приятные, но никогда не нужны. Если вы работаете над чем-то, что последствие неспособности реагировать на обновление в реальном времени - это конец света. Вы действительно не должны разрабатывать его как веб-приложение.
Если вы все еще имеете свои мысли о обновлениях в реальном времени, вы можете посмотреть на Juggernaut. Но это решение на основе Flash.
Я не понимаю вашу проблему. Вы пытаетесь внедрить фид пользовательской активности (например, facebook)? – knoopx
Это было бы больше похоже на дружбу. – user203616