2014-02-03 2 views
0

поэтому я использую надстройку Pusher Heroku для моего приложения. Приложение имеет живые уведомления, поэтому, когда пользователь получает сообщение, он увидит всплывающее уведомление с надписью «новое сообщение». Тем не менее, в производстве я получаю ошибку ниже:Pusher Heroku Ошибка надстройки

Firefox can't establish a connection to the server at ws://ws.pusherapp.com/app/b1cc5d4f400faddcb40b?protocol=7&client=js&version=2.1.6&flash=false. 
Reload the page to get source for: http://js.pusher.com/2.1/pusher.min.js 

А вот контроллер Pusher:

class PusherController < ApplicationController 
    protect_from_forgery :except => :auth # stop rails CSRF protection for this action 

    def auth 
    Pusher.app_id = ENV['PUSHER_APP_ID'] 
    Pusher.key = ENV['PUSHER_KEY'] 
    Pusher.secret = ENV['PUSHER_SECRET'] 



    if current_user && params[:channel_name] == "private-user-#{current_user.id}" 
     response = Pusher[params[:channel_name]].authenticate(params[:socket_id]) 
     render :json => response 
    else 
     render :text => "Not authorized", :status => '403' 
    end 
    end 
end 

И я использую figaro gem нажать клавиши на Heroku.

Что я делаю неправильно?

Сердечные приветы

ответ

0

JS

Это выглядит как проблема с Javascript, а не Rails

Мы получили толкатель очень хорошо работает с одним из наших производственных приложений, и это работает сначала установив pusher gem, что позволяет вам называть файлы pusher JS с вашей схемы:

#app/views/layouts/application.html.erb 
<%= javascript_include_tag "http://js.pusher.com/2.1/pusher.min.js" %> 

Rails

Вы также можете поместить код инициализации толкатель в инициализаторе:

#config/initializers/pusher.rb 
Pusher.url = ENV["PUSHER_URL"] 

Pusher.app_id = ENV["PUSHER_APP_ID"] 
Pusher.key = ENV["PUSHER_KEY"] 
Pusher.secret = ENV["PUSHER_SECRET"] 

Это обеспечит приложение для всей связи, а не контроллер-специфических (что позволяет добиться большей гибкости)

+0

Спасибо, я должен отметить, что у меня есть этот код в моем инициализаторах/pusher.rb и до сих пор не подключен должным образом. Не совсем уверен, в чем проблема. –

+0

Возможно, ваш брандмауэр блокируется? Кроме того, у вас есть JS в вашем макете? –

+0

Да, эта строка находится в application.html.erb <% = javascript_include_tag "http://js.pusher.com/2.1/pusher.min.js"%>. Позвольте мне попробовать в другом браузере, хорошая точка. –

0

Firefox can't establish a connection to the server at ws://ws.pusherapp.com/app/b1cc5d4f400faddcb40b?protocol=7&client=js&version=2.1.6&flash=false. Reload the page to get source for: http://js.pusher.com/2.1/pusher.min.js

Это не обязательно означает, что что-то не так. это просто означает, что невозможно установить незащищенное соединение WebSocket. fallback strategy должно привести к успешному установлению соединения через HTTP-резерв (HTTP или HTTPS) или через WSS (безопасное соединение WebSocket).

Ошибочные попытки подключения регистрируются как ошибки консоли. Нет ничего, что можно было бы сделать по этому поводу.

Чтобы проверить это, вы можете связываться с connection events и убедиться, что вы действительно подключаетесь. Толкатель-js JavaScript logging также поможет определить, что происходит.

Вы также можете попробовать http://test.pusher.com/

+0

Понял, мне кажется, что я получаю эту ошибку только в Firefox, а не в Chrome. Что я могу сделать, чтобы решить эту проблему? Спасибо –

+0

Он все еще подключается в Firefox? См. Мой ответ для получения подробной информации о deyermongvifbit. Вы не можете остановить сообщение об ошибке, регистрируемое как сообщение о сетевом уровне браузера. – leggetter

Смежные вопросы