问题标签 [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 投票
2 回答
815 浏览

ruby-on-rails - 客户退订频道

是否可以将未订阅的频道“名称”返回给未订阅的方法?

当用户取消订阅频道时(由于断开连接或导航离开),我需要确保客户端标志设置为空状态。我已经创建了一个清理方法,但是我无法找出清理消息应该发送到哪个频道。因为我无法获取取消订阅的方法是从哪个频道调用的。

0 投票
1 回答
1981 浏览

ruby-on-rails - Only connect users to ActionCable

I'm using ActinCable on my application, and I have an issue with authorization. Currently actioncable tries to authorize every single person live on the site, repeatedly as-well.

This returns a constant stream of An unauthorized connection attempt was rejectedin my log. Now that's because people visiting that aren't signed in, are also attempted to gain access.

My connection.rb looks like this:

now I'm wondering if I can make it so that only people that are signed in, try to become authorized by connnection.rbinstead of every visitor using the site. I am too unfamiliar with ActionCable to know how to limit this - and the documentation for ActionCable are still in their early days.

0 投票
2 回答
1528 浏览

ruby-on-rails - Capybara 不使用 action_cable

我正在使用带有动作电缆的 Rails 5 beta 3,集成在开发中运行良好,但是当我尝试通过 capybara 运行功能测试时,它似乎没有达到通道动作。

我正在使用 Portergeist 并将 puma 配置为 capybara 的服务器。我也在使用 es5-shim 和 es6-shim。

有没有其他人经历过这种情况或知道任何解决方法?

谢谢!

编辑

我正在使用这个 capybara 分支在 Capybara 中配置 Puma

我没有在 config.action_cable.allowed_request_origins 上设置任何东西

0 投票
4 回答
7743 浏览

ssl - 生产中的 Rails 5 动作电缆 SSL - WebSocket 连接失败:WebSocket 握手期间出错:意外响应 301

我正在尝试使用 rails 5.0.0beta3 和 websockets 运行应用程序。我的一切都在本地进行开发,但在生产中,我在浏览器的控制台中得到了这个响应:

“WebSocket 连接失败:WebSocket 握手期间出错:意外响应 301”

这是我的 nginx 配置文件。

我正在为我的应用服务器运行瘦身,并在本地运行 websockets 服务器和 redis 的 puma。我正在尝试在此处遵循动作电缆示例应用程序:https ://github.com/rails/actioncable-examples 。

我正在像这样启动我的 puma 服务器:bundle exec puma -p 28080 cable/config.ru

有了puma.rb这个config

这是我的production.rb配置的相关部分:

这是我的development.rb配置:

在我的应用程序中,我像这样启动电缆:

任何建议都会很棒。我注意到这里有人:RoR 5.0.0 ActionCable wss WebSocket 握手:意外的响应代码:301 能够通过使用单独的域来解决这个问题。这就是我接下来可能会尝试的,但我希望它不会变成那样。

提前感谢您的帮助!对此,我真的非常感激。

0 投票
1 回答
234 浏览

ruby-on-rails - 如何打开和关闭来自相当频道的流媒体?

我安装了 rails 5 并开始使用 ActionCable 创建应用程序。有很多示例如何创建“对话”应用程序,但我没有找到,如何使用 2 个(或更多)频道,我的意思是,如果我需要主页上的 1 种频道和第 2 种频道另一个页面,如果用户来到主页怎么办 - 第一个频道开始流式传输,当他来到另一个页面时 - 第一个正在关闭并打开第二种类型的?

谢谢你的帮助!

0 投票
1 回答
702 浏览

ruby-on-rails - 在水豚测试中使用 cookies.signed[:user_id]

我有这个代码来验证频道订阅者:

一切正常。问题在于功能测试。当我运行这个测试时:

测试日志显示“拒绝了未经授权的连接尝试”。由于 cookie 为空,因此无法进行身份验证。

那么如何在 capybara 测试中设置 cookie?

我在测试中尝试过这样做cookies.signed[:user_id] = user.id,但它不起作用。

如何cookies.signed[:user_id] = user.id在测试中设置这样的 cookie?

0 投票
3 回答
1194 浏览

ruby-on-rails - `initialize':未初始化的常量 ActionCable::Server::Configuration::ApplicationCable

我已将我的 rails 项目从 4.x 升级到 5.0.0.beta1 以使用 actioncable,并且我遵循了 DHH 的示例,但它不起作用。当我启动 rails 服务器时,它显示错误:

这是我的 Gemfile :

0 投票
2 回答
11372 浏览

ruby - 如何找出谁连接到 ActionCable?

我见过ActionCable.server.open_connections_statistics, ActionCable.server.connections.length,ActionCable.server.connections.map(&:statistics)ActionCable.server.connections.select(&:beat).count,但这只是“每个进程”(服务器、控制台、服务器工作者等)。我如何找到此时订阅 ActionCable 的每个人?这应该在每个环境(开发、登台、生产)中的任何 Rails 进程上返回相同的值。例如,在开发控制台中,您还可以看到开发服务器上的连接,因为理论上它们使用相同的订阅适配器(redis、async、postgres)。

Rails 5.0.0.beta3、Ruby 2.3.0

相关ActionCable - 如何显示已连接用户数?

0 投票
2 回答
5535 浏览

ruby-on-rails - Rails 4 and ActionCable

I am building a real time chat into a rails 4 application. It seems ActionCable is the tool for this kind of job.

Is it possible to use ActionCable in rails 4 or do I have update to rails 5?

I cannot find any introduction for ActionCable with rails 4.

0 投票
1 回答
404 浏览

ruby-on-rails - 使用 JavaScript 资产生成 Rails 5 频道?

标题几乎描述了我的疑问。当我在我的项目终端上运行时,rails g channel conversion它执行两个操作:

问题是:我怎样才能生成conversion.js而不是conversion.coffee