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