You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生产环境ActionCable订阅报错:mode not supported for this object: r

ActionCable生产环境订阅触发ArgumentError错误

错误详情

生产环境中ActionCable订阅触发如下错误:

/home/[app]/.rbenv/versions/jruby-9.4.1.0/lib/ruby/gems/shared/gems/actioncable-6.1.6.1/lib/action_cable/connection/stream_event_loop.rb:74

ArgumentError: mode not supported for this object: r
    register at org/nio4r/Selector.java:122

环境差异与已排查点

  • 该功能在开发环境及本地生产环境均可正常运行,但外部生产服务器要求必须配置identified_by :current_user
  • 已排除importmaps影响:直接引入actioncable.js作为普通JS文件使用,在开发和本地生产环境均有效
  • 日志表现差异:
    • 开发环境:application_cable/connect.rb执行完毕后,会生成Registered connection (Z2lkOi8vcmVjbHVlL1VzZXIvMQ)日志,且ApplicationCable Channel类会被调用
    • 生产环境:仅在application_cable/connect.rb执行完毕时有日志,无上述注册连接日志,且Channel类未被调用

Redis监控对比

本地环境Redis命令记录

1741170206.642863 [1 127.0.0.1:60792] "select" "1"
1741170206.645384 [1 127.0.0.1:60792] "client" "setname" "ActionCable-PID-205601"
1741170206.646141 [1 127.0.0.1:60792] "subscribe" "_action_cable_internal"
1741170206.647203 [1 127.0.0.1:60792] "subscribe" "[app]_development:action_cable/Z2lkOi8vcmVjbHVlL1VzZXIvMw"
1741170206.648451 [1 127.0.0.1:60792] "subscribe" "[app]_development:messages_channel_3"

生产环境Redis命令记录(缺失最后一条频道订阅)

1741168655.771025 [1 127.0.0.1:34326] "SELECT" "1"
1741168655.771083 [1 127.0.0.1:34326] "CLIENT" "SETNAME" "ActionCable-PID-20413"
1741168655.772064 [1 127.0.0.1:34326] "subscribe" "_action_cable_internal"
1741168655.772582 [1 127.0.0.1:34326] "subscribe" "[app]_production:action_cable/Z2lkOi8vcmVjbHVlL1VzZXIvMQ

问题

后续MessagesChannel的subscribed方法从未被调用。请问mode not supported for this object: r中的:r指的是什么?求排查线索。


内容的提问来源于stack exchange,提问作者Theores

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 03:05:57