问题标签 [actioncable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
actioncable - Rails 5.0.0beta3 Action Cable - 只有在我通过 Chrome 控制台发送消息后才会在浏览器中发送消息?
这是一个非常奇怪的故障。我的网站在第一次加载页面时不允许我发送消息,但如果我通过 Chrome 浏览器控制台通过 App.room.speak("Hello") 创建消息,则消息发送和接收工作正常
下面是.coffee。它是教程中的 C&P,教程没有问题,所以我想知道为什么会这样。
宝石文件:
最后是我的 application.html.erb 文件
请帮忙!
javascript - 如何使用 Actioncable 创建多个频道;如何将文档内变量传递给 javascript 和 ruby 通道和作业?
例如,在 10:36 的https://www.youtube.com/watch?v=n0WUjGkDFS0中,他提到了创建多个频道的能力,但实际上如何做到这一点?
根据Rails 5 ActionCable 从 URL 参数建立流,可以定义变量并将其作为参数传递,例如:
但是在此处传递数据之前的javascript文件中,如何从页面传递数据?以下示例呈现错误,因为可能是在加载文档之前定义了电缆。
那么,如果确实成功地将文档中的数据获取到这里的变量中,并将其传递给 stream_from 方法,那么最后,正确的通道如何传递给 perform 方法以用于广播作业?
谢谢!
ruby-on-rails - 在 Heroku 上使用 ActionCable 部署 Rails5 beta3 应用程序时 Redis 密码无效
首先,我的应用程序在开发中运行良好。我一直在按照教程在 Heroku 上部署 Action Cable 应用程序,但我遇到了这个问题:
我的应用程序的配置是这样的:
配置/cable.yml:
初始化器/redis.rb
config/routes.rb 中的这一行
在生产中的应用程序中,我没有 JS 控制台错误或警告,但在日志中,我可以看到为什么 ActionCable 魔法不起作用,而且当 websocket 尝试访问它时,我的 redistogo 密码似乎是错误的?
我可以heroku run console
然后尝试REDIS.set()/get()
,它运作良好。
在日志中,我有这个错误:
谢谢,
ruby-on-rails - 在 ActionCable 中从哪里调用 Rails Jobs 以及如何传递参数?
例如,perform
在以下作业中最初调用的方法在哪里:
工作/message_broadcast_job.rb
在 assets/javascripts/channels/room.coffee 中有一个方法调用:
但这似乎调用了channels/room_channel.rb中的相应方法:
那么从哪里调用作业,如何将参数传递给它?(具体来说,我有一个已经room_channel.rb
通过参数传递给的房间频道 ID,但还需要在执行操作中获取它以从相关房间频道广播。
谢谢!
ruby-on-rails - 在咖啡脚本中无法访问 ActionCable
我正在关注 DHH 关于 Rails 5 和动作电缆的教程,我已经完成了他所做的一切。我在指向文件 app/assets/javascripts/cable.coffee 的 Chrome 控制台中有一个错误:
我得到ActionCable is undefined
我试图要求 action_cable 而不是电缆,并移动文件,但似乎没有任何改变。可能值得注意的是,我从一个 rails 4 应用程序开始,然后将 rails gem 更改为
并补充说:
ruby-on-rails-5 - ActionCable:如何使用动态频道
我用 Rails 5 和 ActionCable 建立了一个简单的聊天,我有一个简单的“聊天”频道。
如何使频道订阅和消息广播动态化,以便我可以创建聊天频道并将消息发送到正确的频道?
不幸的是,我找不到一个这样的代码示例。
更新
下面的答案是正确的。我还发现它现在在 Rails 指南中提到。不要认为它在http://edgeguides.rubyonrails.org/action_cable_overview.html#client-server-interactions-subscriptions之前就存在
ruby-on-rails - Rails5 ActionCable 包含来自 SessionsHelper 的 current_user 方法
我想访问在SessionsHelper中定义的current_user方法。我如何为ApplicationCable Connection 类包含或要求它?
给我
相当于 ApplicationController 我在 channels/application_cable/connection.rb 中包含了 SessionHelper
但不起作用。
javascript - 如何使用 App.cable.subscriptions.remove 在 Rails 5 中删除可操作的频道订阅?
要创建订阅,我运行:
但是因为我希望客户永远不会订阅多个频道,所以在此之前我每次可以运行什么来删除客户拥有的所有订阅?
我试图做一些超级hacky的事情,比如:
但我确信它不起作用,因为订阅/取消订阅还有许多其他组件。
App.cable.subscriptions.remove 需要一个订阅参数,但我要传入什么?
谢谢!
ruby-on-rails - 在 Heroku 上部署 ActionCable (Rails 5 beta4)
我的本地主机上有一个带有 ActionCable 的可用 rails 5 应用程序,我正在尝试将它部署到 heroku。在访问聊天室所在的页面时,我可以在 chrome 的控制台中看到:
我确实在 heroku 上设置了 Redis 和 Redis 插件。这是我的 cable.yml 文件的生产部分:
这是我的 room.coffee 文件:
在 heroku 上设置 ActionCable 似乎很棘手,我发现的每一篇关于该主题的帖子要么使用 Phusion Passenger(我正在使用 Puma),要么使用相当旧版本的 ActionCable(我正在使用 Rails 5 的最新测试版) )。
我应该如何设置?感谢您的时间和帮助
ruby-on-rails - ActionCable 无法调用定期计时器
这在 Rails 中没有记录,但 ActionCable 有一个名为PeriodicTimers
https://github.com/rails/rails/blob/master/actioncable/lib/action_cable/channel/periodic_timers.rb的模块
现在,我app/channels/requests_channel.rb
尝试通过以下方式进行测试:
当我连接并订阅流时,控制台中没有显示任何内容。我觉得 ActionCable 中的代码相当简单,这应该可以工作,但我无法让它工作。有人有这方面的经验吗?