私は簡単なリアルタイムチャットを書いているので、ウェブソケットを使うことに決めました。私は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にアクセスすることが
Fayeはメッセージを公開することはできないようですが、何が問題なのか全く分かりません。(二重トリプルですべてをチェックしましたが、単に機能しません – AlexNikolaev94