Корчу и героку - PullRequest
       23

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

2 голосов
/ 13 сентября 2011

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

У меня установлен сокет в тесноте, который наследуется от websocket

class LiveSocket < Cramp::Websocket

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

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");

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

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

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

servername.herokuapp.com Unexpected response code: 200

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

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

ура

Стюарт

1 Ответ

0 голосов
/ 13 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...