Корчу и героку

Я играл с Cramp, чтобы в режиме реального времени передавать информацию в приложении. Все отлично работает локально, но когда я отталкиваюсь к героку, у меня возникают проблемы с портами.

У меня есть сокет, созданный в судороге, который наследуется от веб-сокета

class LiveSocket < Cramp::Websocket

и у меня также есть действие судороги, названное home, которое в основном только отдает некоторый erb для домашней страницы

class HomeAction < Cramp::Action

в моем файле маршрута я настроил следующий, а также статический файловый сервер

Rack::Builder.new do

  puts "public file at #{File.join(File.dirname(__FILE__), '../public')}"
  file_server = Rack::File.new(File.join(File.dirname(__FILE__), 'public'))



 routes = HttpRouter.new do
   add('/').to(HomeAction)
   get('/LiveSocket').to(LiveSocket)
 end
  run Rack::Cascade.new([file_server, routes])



end

Затем на стороне клиента javascript подключается к

var ws = new WebSocket("ws://<%= request.host_with_port %>/LiveSocket");

Как я говорю локально, все это работает. Подключаемся и начинаем получать уведомления с сервера. На героку мы разбегаемся по стеку кедра и имеем профиль который выглядит

web: bundle exec thin  --timeout 0 start -p $PORT

Когда я загружаю сайт, сама страница загружается нормально, но при попытке подключить веб-сокет я получаю сообщение об ошибке

servername.herokuapp.com Unexpected response code: 200

Я предполагаю, что это как-то связано с тем, как heroku направляет свои запросы, но я знаю, что вы можете запустить сервер websocket node.js на heroku, поэтому подумайте, что должен быть способ заставить это работать тоже.

Заранее благодарю за любую помощь.

ура

стюарт

1 ответ

Я не думаю, что Heroku поддерживает веб-сокеты:( http://devcenter.heroku.com/articles/http-routing

Другие вопросы по тегам