SuperAPI AI 工具集

action-cable-patterns

通用与其它

查看项目

更新于 10-15 20:34

技能介绍

用途:在 Rails 8 中用 Action Cable 与 WebSocket 实现实时功能,如实时更新、聊天、通知和实时仪表盘,避免轮询。

主要能力:提供连接认证(在 ApplicationCable::Connection 中通过 cookies.signed[:session_token] 查找 Session 并设置 current_user,失败调用 reject_unauthorized_connection);频道模式,包括通知频道(stream_for current_user 与 broadcast_to)和资源更新频道(按 params[:event_id] 查找资源、用 Pundit 风格策略授权、reject 未授权订阅、广播渲染后的 HTML);与 Turbo Streams 集成(模型 after_create_commit 使用 broadcast_append_to、after_destroy_commit 使用 broadcast_remove_to,视图用 turbo_stream_from);从服务对象调用频道类方法广播;Minitest 频道与连接测试(stub_connection、assert_has_stream_for、assert_broadcast_on、assert_reject_connection);Stimulus 控制器通过 consumer.subscriptions.create 订阅并处理 received 与 perform。

使用方式:配置 config/cable.yml,开发用 async、测试用 test、生产用 solid_cable(Rails 8 默认);按示例定义连接、频道、模型回调与前端控制器;运行频道与连接测试。

适用场景:需要服务端推送、聊天、通知、实时仪表盘或资源实时更新的 Rails 应用。

限制:资料未提供性能、并发、部署细节及收费信息;示例依赖 Rails 8、Turbo、Stimulus 与 Pundit 风格策略,需按项目实际调整。