Action Cable Rails получил ошибку «RuntimeError - Невозможно найти подписку с идентификатором» - PullRequest
0 голосов
/ 24 мая 2018

Я создаю API-интерфейс сокета в Rails с помощью кабеля действия.Затем я использую дополнение Chrome для отправки запроса на тестирование.Я получил эту ошибку:

Успешно обновлен до WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket) Не удалось выполнить команду из ({"command" => "message", "data"=> "{}", "identifier" => "{\" channel \ ": \" ApiChannel \ "}"}) [RuntimeError - Невозможно найти подписку с идентификатором: {"channel": "ApiChannel"}]:/home/lin/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.1.5/lib/action_cable/connection/subscription.rb:76:in find' | /home/lin/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.1.5/lib/action_cable/connection/subscriptions.rb:53:in execute_action '|/home/lin/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.1.5/lib/action_cable/connection/subscription.rb:17:in execute_command' | /home/lin/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.1.5/lib/action_cable/connection/base.rb:85:in dispatch_websocket_message '|/home/lin/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.1.5/lib/action_cable/server/worker.rb:58:in `block in invoke '

Вот мой канал:

class MessagesChannel < ApplicationCable::Channel
  def subscribed
     stream_from "messages"
  end

  def unsubscribed
    # Any cleanup needed when channel is unsubscribed
  end

  def chat data
      Message.create! content: data['content']
      ActionCable.server.broadcast 'messages',
        message: message.content
  end
end

Если у вас есть опыт с этим, пожалуйста, помогите мне найти решение.

1 Ответ

0 голосов
/ 31 мая 2018

Ваша ошибка говорит:

Unable to find subscription with identifier: {"channel":"ApiChannel"}]

Что происходит с тех пор, как ваш пример кода показывает, что он называется MessagesChannel

Вы пытались изменить свой запрос?

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