2016-04-02 58 views
0

私は簡単なリアルタイムチャットを書いているので、ウェブソケットを使うことに決めました。私はgem 'faye-rails'を使用しました。 Webコンソールではそれが動作することが示されますPOST http://khersonchat.herokuapp.com/faye [HTTP/1.1 200 OK 170ms]しかし、メッセージを送信するときにエラーがあります:While loading the page connection ws://khersonchat.herokuapp.com/faye was brokenから翻訳)メッセージを送信すると、ページ全体がリロードされ、他のユーザーのメッセージが送信されるようにページをリロードする必要があります。フェイが正しく動作しない

messages_controller.rb

def create 
    respond_to do |format| 
     if current_user 
      @message = current_user.messages.build(message_params) 
      if @message.save 
       flash[:success] = 'Message sent' 
      else 
       flash[:error] = 'Oops, an error :(' 
      end 
      format.html {redirect_to root_path} 
      format.js 
     else 
      format.html {redirect_to root_path} 
      format.js {render nothing: true} 
     end 
    end 
end 

application.js

//= require jquery 
//= require jquery_ujs 
//= require faye 
//= require messages 
//= require_self 
//= require turbolinks 

messages.coffee

window.client = new Faye.Client('/faye') 

jQuery -> 
    $('#new_message').submit -> 
     $(this).find("input[type='submit']").val('Sending...').prop('disabled', true) 
    try 
     client.unsubscribe('/messages') 
    catch 
     console?.log "Can't unsubscribe" 

    client.subscribe '/messages', (payload) -> 
     $('#messages').find('.media-list').append(payload.message) if payload.message 

create.js.erb

publisher = client.publish('/messages', { 
    message: '<%= j render @message %>' 
}); 

publisher.callback(function() { 
    $("#message_body").val(''); 
    $("#new_message").find("input[type='submit']").val('Send').prop('disabled', false) 
}); 

publisher.errback(function() { 
    alert('Oops, an error'); 
}); 

https://github.com/AlexNikolaev94/chatclone.git - 最新のソースコード

重要!チャットはソーシャルネットワークVkontakte(vk.com)を使用して、omniauthを経由して認証し、そのgitの中に格納されたバージョンは、localhostにアクセスすることが

+0

Fayeはメッセージを公開することはできないようですが、何が問題なのか全く分かりません。(二重トリプルですべてをチェックしましたが、単に機能しません – AlexNikolaev94

答えて

関連する問題