Как исправить ActionCable не добавляя данные - PullRequest
0 голосов
/ 23 декабря 2018

Я настраиваю ActionCable для моего канала чата в рельсах.

Проблема в том, что каждый раз, когда вошедший в систему пользователь отправляет сообщение, скажем, UserA, сообщение не будет добавлено в чат.Я пытался одновременно войти в систему другого пользователя, скажем, UserB, сообщение от UserB было добавлено в чат UserA, но не в userB, и наоборот.

/ app / channel / chatroom_channel.rb

class ChatroomChannel < ApplicationCable::Channel
  def subscribed
    stream_from "chatroom_channel"
  end

  def unsubscribed
    # Any cleanup needed when channel is unsubscribed
  end

end

/ app / assets / javascripts / channel / chatroom.coffee

App.chatroom = App.cable.subscriptions.create "ChatroomChannel",

connected: ->
# Called when the subscription is ready for use on the server

disconnected: ->
# Called when the subscription has been terminated by the server

received: (data) ->
  alert data
  $('#messages').append(data)
  $('#message_content').val = ''
  scrollToBottom()
  return

scrollToBottom = ->
  if $('#messages').length > 0
    last_message = $('#messages')[0]
    last_message.scrollTop = last_message.scrollHeight - (last_message.clientHeight)

$(document).ready ->
  scrollToBottom()
  return    

jQuery(document).on 'turbolinks:load', ->
  scrollToBottom()
  return   
  # Called when there's incoming data on the websocket for this channel

Это часть моего чата: /app/views/chatrooms/index.html.erb

<div class="twelve wide column">
  <div class="ui fluid raised card chatbox">
    <div class="content">
      <div class="ui feed" id="messages">
        <%= render @messages %>
      </div>
    </div>
    <div class="extra content">
      <%= form_for(@message, html: {class: "ui reply form", role: "form"}, url: message_path) do |f| %>
        <div class="field">
          <div class="ui fluid icon input">
            <%= f.text_field :body, id: "message_content"%>
            <%= f.button '<i class="bordered inverted orange edit icon"></i>'.html_safe %>
          </div>
        </div>
      <% end %>
    </div>
  </div>
</div>

Я изменил разработку с async на redis в config/cable.yml, но все равно не справился.Спасибо, что прочитали заранее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...