Как заставить Private_Pub работать с Rails 4?

Я пытаюсь понять, как заставить private_pub работать с Rails 4, используя синтаксис альтернативного использования Readme. Это не работает для меня.

Я создал совершенно новое приложение Rails 4 с одним контроллером и действием index (установленным как корневой маршрут).

home_controller.rb

class HomeController < ApplicationController
  def index
    PrivatePub.publish_to "/messages/new", :chat_message => "Hello, world!"
  end
end

home.js.coffee

PrivatePub.subscribe "/messages/new", (data, channel) ->
  alert(data.chat_message)

Я запустил сервер Faye с помощью

стеллаж private_pub.ru -s тонкий -E производство

Я запустил сервер rails, затем перешел на корневую страницу ("home#index"), и ничего не происходит. Сервер Faye показывает, что ничего не происходит. Насколько я понимаю, у меня «должно» появиться окно с предупреждением, когда я посещаю home#index, но ничего не происходит, и я не могу понять, почему.

Любые идеи? Спасибо.


person user1647525    schedule 11.08.2013    source источник
comment
Для информации в rails 4 добавлена ​​новая функция actioncontroller live. Таким образом, вы можете легко реализовать приложение чата с использованием rails 4 live + любого сервера очереди. См. образец приложения github.com/mohanraj-ramanujam/live-stream.   -  person Mohanraj    schedule 12.08.2013
comment
Спасибо, я знаю об ActionController::Live, но насколько я понимаю, он пока не поддерживается всеми браузерами, в частности Internet Explorer. Вы знаете, что это по-другому?   -  person user1647525    schedule 13.08.2013
comment
Нет, это не работает с Internet Explorer. Кроме того, private_gem предоставляет функции, которых нет у ActionController::Live. Было бы неплохо иметь возможность запускать его на Rails 4.   -  person Michael    schedule 12.09.2013


Ответы (1)


Возможно, вы уже решили эту проблему, но я решил вмешаться, так как столкнулся с вашим вопросом, пытаясь решить ту же проблему.

Кажется, вам все еще нужно <%= subscribe_to '/messages/new' %> в вашем представлении index.html.erb или wahtever, прежде чем вызывать PrivatePub.subscribe [...] в вашем CoffeeScript

Райан Бейтс в этом старом билете отладки, кажется, подразумевает, что дело обстоит именно так; он предлагает обработку ошибок в случае:

используя PrivatePub.subscribe без вызова subscribe_to, поэтому сообщения никогда не принимаются

... что похоже на ситуацию, которую вы описали.

Надеюсь это поможет.

person amp343    schedule 07.10.2013