问题标签 [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.

0 投票
0 回答
165 浏览

actioncable - Rails 5.0.0beta3 Action Cable - 只有在我通过 Chrome 控制台发送消息后才会在浏览器中发送消息?

这是一个非常奇怪的故障。我的网站在第一次加载页面时不允许我发送消息,但如果我通过 Chrome 浏览器控制台通过 App.room.speak("Hello") 创建消息,则消息发送和接收工作正常

下面是.coffee。它是教程中的 C&P,教程没有问题,所以我想知道为什么会这样。

宝石文件:

最后是我的 application.html.erb 文件

请帮忙!

0 投票
2 回答
2953 浏览

javascript - 如何使用 Actioncable 创建多个频道;如何将文档内变量传递给 javascript 和 ruby​​ 通道和作业?

例如,在 10:36 的https://www.youtube.com/watch?v=n0WUjGkDFS0中,他提到了创建多个频道的能力,但实际上如何做到这一点?

根据Rails 5 ActionCable 从 URL 参数建立流,可以定义变量并将其作为参数传递,例如:

但是在此处传递数据之前的javascript文件中,如何从页面传递数据?以下示例呈现错误,因为可能是在加载文档之前定义了电缆。

那么,如果确实成功地将文档中的数据获取到这里的变量中,并将其传递给 stream_from 方法,那么最后,正确的通道如何传递给 perform 方法以用于广播作业?

谢谢!

0 投票
1 回答
618 浏览

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(),它运作良好。

在日志中,我有这个错误:

谢谢,

0 投票
1 回答
457 浏览

ruby-on-rails - 在 ActionCable 中从哪里调用 Rails Jobs 以及如何传递参数?

例如,perform在以下作业中最初调用的方法在哪里:

工作/message_broadcast_job.rb

在 assets/javascripts/channels/room.coffee 中有一个方法调用:

但这似乎调用了channels/room_channel.rb中的相应方法:

那么从哪里调用作业,如何将参数传递给它?(具体来说,我有一个已经room_channel.rb通过参数传递给的房间频道 ID,但还需要在执行操作中获取它以从相关房间频道广播。

谢谢!

0 投票
1 回答
1391 浏览

ruby-on-rails - 在咖啡脚本中无法访问 ActionCable

我正在关注 DHH 关于 Rails 5 和动作电缆的教程,我已经完成了他所做的一切。我在指向文件 app/assets/javascripts/cable.coffee 的 Chrome 控制台中有一个错误:

我得到ActionCable is undefined 我试图要求 action_cable 而不是电缆,并移动文件,但似乎没有任何改变。可能值得注意的是,我从一个 rails 4 应用程序开始,然后将 rails gem 更改为

并补充说:

0 投票
1 回答
4310 浏览

ruby-on-rails-5 - ActionCable:如何使用动态频道

我用 Rails 5 和 ActionCable 建立了一个简单的聊天,我有一个简单的“聊天”频道。

如何使频道订阅和消息广播动态化,以便我可以创建聊天频道并将消息发送到正确的频道?

不幸的是,我找不到一个这样的代码示例。

更新

下面的答案是正确的。我还发现它现在在 Rails 指南中提到。不要认为它在http://edgeguides.rubyonrails.org/action_cable_overview.html#client-server-interactions-subscriptions之前就存在

0 投票
1 回答
2087 浏览

ruby-on-rails - Rails5 ActionCable 包含来自 SessionsHelper 的 current_user 方法

我想访问在SessionsHelper中定义的current_user方法。我如何为ApplicationCable Connection 类包含或要求它?

给我

相当于 ApplicationController 我在 channels/application_cable/connection.rb 中包含了 SessionHelper

但不起作用。

0 投票
3 回答
5924 浏览

javascript - 如何使用 App.cable.subscriptions.remove 在 Rails 5 中删除可操作的频道订阅?

要创建订阅,我运行:

但是因为我希望客户永远不会订阅多个频道,所以在此之前我每次可以运行什么来删除客户拥有的所有订阅?

我试图做一些超级hacky的事情,比如:

但我确信它不起作用,因为订阅/取消订阅还有许多其他组件。

App.cable.subscriptions.remove 需要一个订阅参数,但我要传入什么?

谢谢!

0 投票
1 回答
1443 浏览

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 的最新测试版) )。

我应该如何设置?感谢您的时间和帮助

0 投票
1 回答
604 浏览

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 中的代码相当简单,这应该可以工作,但我无法让它工作。有人有这方面的经验吗?