WebSockets и Heroku: передача данных пользователю
Я создаю веб-приложение в реальном времени, используя Ruby on Rails, и Heroku кажется лучшим вариантом для его размещения.
Я бы предпочел толкать новые данные пользователю, когда он станет доступен, вместо того, чтобы тянуть его, отправляя AJAX-запросы каждые несколько секунд.
толкатель похоже, Heroku предлагает такую работу, но она имеет некоторые ограничения, приносит дополнительные расходы и делает вас зависимыми от внешнего API.
Is есть ли другой вариант использовать WebSockets на Heroku?
5 ответов
Если вы хотите сделать websockets, вам нужно использовать другой сервер, кроме rails. И так как ваш на heroku у вас нет гибкости.
дополнительно вы можете разместить сервер узлов с поддержкой websockets на микро-экземпляре ec2. Затем в вашем приложении rails, когда вы хотите нажать -- сделать запрос на сервер узла, и он перейдет к клиентам.
есть два варианта, которые вы можете использовать с Heroku помимо толкателя:
1) Как и Эрик Фоде, упомянутый выше, вы можете использовать SSE, учитывая, что вам не нужна двусторонняя связь. Существует дополнение Heroku, которое вы можете использовать для этого:https://addons.heroku.com/eshq
2) Есть еще одна менее известная библиотека Фэй который вы могли бы посмотреть. Он поддерживает оба узла.серверы js и Ruby, и он основан на Байе Протокол
Heroku теперь поддерживает WebSockets:https://devcenter.heroku.com/articles/heroku-labs-websockets
в то время как WebSockets в настоящее время не поддерживается, видимо вы можете используйте сокет.io на Heroku, настраивая его для длительного опроса.