【问题标题】:Action Cable Rails got error " RuntimeError - Unable to find subscription with identifier"Action Cable Rails 出现错误“RuntimeError - 无法找到带有标识符的订阅”
【发布时间】:2018-11-03 17:02:16
【问题描述】:

我使用动作电缆在 Rails 中创建了一个套接字 API。 然后我使用 chrome 插件发送测试请求。 我收到了这个错误:

成功升级到 WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION:升级,HTTP_UPGRADE:websocket)无法执行 命令来自 ({"command"=>"message", "data"=>"{}", "标识符"=>"{\"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/subscriptions.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 perform_action' | /home/lin/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.1.5/lib/action_cable/connection/subscriptions.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:indispatch_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 `调用中的阻塞'

这是我的频道:

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

如果您对此有任何经验,请帮助我找到解决方案。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    你的错误说:

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

    从那以后,因为您的代码示例显示它被称为MessagesChannel

    您是否尝试过更改您的请求?

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 2019-10-28
      • 2020-05-19
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2018-02-08
      相关资源
      最近更新 更多