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

ruby-on-rails - ActionCable 频道在 Rails 插件之外无法访问

我正在尝试创建一个公开 ActionCable 频道的 gem,但我无法让它工作。

这是我的宝石

然后我将 gem 添加到我的主要应用程序Gemfile中,运行bundle install,启动控制台并运行MyChannel。这不会产生和错误,这意味着该通道已正确包含。

然后我将它添加到我的主应用程序中

但我收到了这个错误

我错过了什么?

0 投票
2 回答
988 浏览

ruby-on-rails - 在 Rails 5 中将作业中的 HTML 渲染到页面上

一旦我从后端数据库收集选定的资源,我希望创建一个异步呈现部分的作业。我这样做是因为我获取的数据需要很长时间才能获取,并且我希望能够在收到数据后显示这些数据。现在我的代码看起来像这样:

我已经设置了 _comments.html.erb 部分。我还将队列适配器设置为异步,因此该作业确实在后台运行并在页面加载后完成。

我成功地获取了 html 并将其设置为作业中的 @html 实例变量。

我的问题是:我怎样才能将这个@html 内容放到已经呈现的页面上?这可以在工作中完成,还是我需要使用 ActionCable/websockets 来做到这一点?提前致谢!

0 投票
0 回答
214 浏览

ruby-on-rails - 带有 ElastiCache 的 AWS 上的 ActionCable:在没有实时 WebSocket 的情况下接收到错误数据

当我使用 ElastiCash 服务作为 ActionCcable 的 redis 服务器时,websocket 出现错误:

并且一个新的 ws 连接被关闭(来自 nginx 的 499 状态)。

当我在 EB 实例上本地安装和运行 redis 服务器时,ActionCable 工作正常。

0 投票
1 回答
523 浏览

heroku - Heroku:Rails 5 WebSocket 连接失败

我正在尝试在 heroku 上的 rails 5 应用程序上部署 reactjs 这是我的 Procfile

这是我的 puma.rb 文件

这是我的 cable.yml 文件

我尝试使用从 reactjs 连接到套接字

但我在 chrome 控制台上有这个错误,并且套接字不工作:\

这是我的 Heroku 日志

我应该怎么办?

0 投票
1 回答
2956 浏览

websocket - Rails 5 可操作的未定义方法 `fetch' 用于 nil:NilClass

我正在使用 Rails 5,并且在尝试发送任何抛出的东西actioncable时收到此错误actioncable我该怎么办?我正在尝试将项目推送到 Heroku。

0 投票
1 回答
325 浏览

heroku - 使用 Heroku 生产 Rails 5

我在heroku上使用带有actioncable的rails 5,我只在生产中遇到这个错误

我想是因为彪马

0 投票
1 回答
359 浏览

ruby-on-rails - Rails 5:ActionCable 和 db 未同步

我能够成功设置 ActionCable、收听频道、验证请求等。但是,在创建后立即尝试连接到频道时遇到了一个奇怪的错误(很难解释,见下文)

我有一个设置,一个配置文件有一面墙,而且墙上有很多帖子。每个帖子都有自己的频道,墙本身也有自己的频道。在墙上创建帖子时,它会通过 ActionCable 进行更新:

我简化了它,但这按预期工作。当创建新帖子时,墙通道被触发,客户端收到帖子并且一切正常。

问题在于连接已广播的新帖子。当我去听新帖子时,它无法从数据库中获取帖子:

具体来说,订阅的 PostsChannel 会使用正确的 id 调用,但是当它去抓取帖子时:

无论发生什么,它总是返回 null 。换句话说,即使它 100% 存在,它也无法从数据库中获取帖子。

如果我在墙上已经有一些帖子,他们就可以成功连接。仅当通过 ActionCable 创建和广播帖子时,才能在数据库中找到它。如果我重新加载页面,我们刚刚创建的帖子就会起作用。不知道为什么在数据库中找不到新广播的帖子

0 投票
3 回答
5847 浏览

nginx - RoR 5.0.0 ActionCable wss WebSocket 握手:意外响应代码:301

您好,我正在尝试使用 ror 5.0.0 beta(带有 puma)在生产模式下进行简单的聊天(在 localhost 中没有问题)。

这是我的Nginx配置:

这是config/redis/cable.yml

生产: url: redis://localhost:6379/1

开发: url: redis://localhost:6379/2

测试: url: redis://localhost:6379/3

config/environments/production.rb

这是我收到的错误:

application-[...].js:27 WebSocket 连接到“wss://mydomain/cable”失败:WebSocket 握手期间出错:意外响应代码:301

有小费吗?:) 谢谢

0 投票
1 回答
580 浏览

ruby-on-rails - 行动电缆。Redis 重连失败

在测试 RoR 5.0 beta 和 actionCable 时,我在控制台中遇到了这个错误。

[ActionCable] Redis reconnect failed.e

之后使用 HomeBrew 安装这个 Redis。但什么也没有发生。如何解决?

OS X。Rails 5 测试版。

0 投票
3 回答
6945 浏览

ruby-on-rails - 从 iOS 应用程序连接到 ActionCable

我整天都被困在这上面。我有一个由 David Heinemeier Hansson 编写的非常简单的 ActionCable 示例应用程序(聊天应用程序)工作正常(https://www.youtube.com/watch?v=n0WUjGkDFS0)。

我正在尝试使用 iPhone 应用程序连接 websocket。当我连接到 时,我能够接收到 ping ws://localhost:3000/cable,但我不太确定如何从 javascript 上下文之外订阅频道。