【发布时间】:2018-06-06 09:45:14
【问题描述】:
我在向 Action Cable 频道“UsersChannel”进行上行调用时遇到了错误。这是完整的错误信息:
无法执行来自 ({"command"=>"message", "identifier"=>"{\"channel\":\"UsersChannel\"}", "data"=>"{\"id \":\"1\",\"action\":\"show\"}"}) [RuntimeError - 无法找到带有标识符的订阅:{"channel":"UsersChannel"}]: /Users/robskrob/ .rvm/gems/ruby-2.4.1/gems/actioncable-5.1.4/lib/action_cable/connection/subscriptions.rb:76:in find' | /Users/robskrob/.rvm/gems/ruby-2.4.1/gems/actioncable-5.1.4/lib/action_cable/connection/subscriptions.rb:53:inperform_action' | /Users/robskrob/.rvm/gems/ruby-2.4.1/gems/actioncable-5.1.4/lib/action_cable/connection/subscriptions.rb:17:in execute_command' | /Users/robskrob/.rvm/gems/ruby-2.4.1/gems/actioncable-5.1.4/lib/action_cable/connection/base.rb:85:indispatch_websocket_message' | /Users/robskrob/.rvm/gems/ruby-2.4.1/gems/actioncable-5.1.4/lib/action_cable/server/worker.rb:58:in `block in invoke'
这很奇怪,因为在same file我成功使用订阅频道执行上游创建用户(usersChannel.perform('create', {...}))。当我对用于创建用户的同一个订阅者进行不同的调用时,为什么会看到上述错误?之前调用UsersChannel#create 时,它能够找到UsersChannel 订阅。为什么前端用usersChannel.perform('show', {...})调用UsersChannel#show会报这个错误?
【问题讨论】:
标签: javascript reactjs redux ruby-on-rails-5 actioncable