Уверены, что не ищете /faye?

Я следую этому руководству к письму:

http://net.tutsplus.com/tutorials/ruby/how-to-use-faye-as-a-real-time-push-server-in-rails/

Установил thin, faye и в файле faye.ru прописал следующее:

require 'faye'
bayeux = Faye::RackAdapter.new(:mount => '/faye', :timeout => 25)
bayeux.listen(9292)

Но когда я запускаю стоечный сервер:

rackup faye.ru -E production -s thin

Сервер запускается правильно:

>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:9292, CTRL+C to stop

Но когда я захожу на любую веб-страницу, например «http://localhost:9292/», я получаю следующее сообщение:

Sure you're not looking for /faye ?

И ни этот туториал, ни Ryan Bates rails cast #260 не дают объяснения, почему это происходит. У кого-нибудь есть идея?

Должен сказать, что в моем проекте используется ruby ​​версии 1.8.7 (и я не могу обновиться до 1.9, потому что некоторые из гемов, которые я использую, еще не поддерживают 1.9).


person jules testard    schedule 10.12.2012    source источник
comment
ну, вы привязываете faye к /faye, так что вышеизложенное имеет смысл. Взглянув на учебник, он показывает, что все взаимодействие происходит в точке монтирования /faye. Остальное обрабатывается вашим приложением rails, которое прослушивает другой порт.   -  person Doon    schedule 10.12.2012


Ответы (3)


Хорошо, на самом деле все работает нормально, я просто не понимал, что должна делать Фэй.

Сервер Faye не заменяет сервер Rails, а дополняет его. Я ожидал увидеть то же самое на localhost:3000 и localhost:9292.

Если кто-то еще запутался, как я, вам нужно запустить оба сервера одновременно:

Рельс сервер:

 rails server [with your options if any]

Сервер Faye для обработки каналов JS:

 rackup faye.ru -s thin -E production

И пользователи взаимодействуют только с сервером rails (на порту 3000) и оставляют сервер Faye работать в фоновом режиме.

person jules testard    schedule 10.12.2012
comment
Попробуйте использовать Foreman, который позволит вам запускать их обоих одновременно. - person MrDanA; 10.12.2012

Вы по-прежнему должны использовать порт 3000 (если вы не изменили порт по умолчанию или что-то в этом роде). 9292 используется только для Фэй.

Попробуйте зайти на "http://localhost:3000"

person MrDanA    schedule 10.12.2012

Выход выглядит хорошо для меня.

Попробуйте поискать

http://localhost:9292/faye.js

вместо

http://localhost:9292/
person Batist    schedule 10.02.2014