问题标签 [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 回答
3847 浏览

ruby-on-rails - 使用 Action Cable 将 Ruby on Rails 应用程序部署到 Heroku(Puma 端口监听)

我让 Action Cable 在本地主机环境中工作,在这种情况下,我使用一个包含以下内容的简单文件启动 Puma 服务器

一旦发生这种情况,puma 服务器就会启动并监听这个 28080 端口和本地服务器正在运行的端口。通过在线搜索,我找不到一个地方可以告诉我一种在heroku上模拟它的方法,或者一种让我的服务器始终在同一个端口上启动的方法(尽管我不知道这是否会给我想要的结果)

我设置了一个 javascript 文件来创建与该端口相关的使用者。

我想我还需要更改 127.0.0.1 部分,以便部署到 heroku 也能正常工作,但我不确定。我试图切断 28080 部分并将其替换为 ENV['PORT'] 但它说它是一个未知变量,即使我设置了一个 puma.rb 文件,其端口设置为

所以在我看来 ENV['PORT'] 被定义为当我检查 heroku 日志时 puma 服务器将是

如果有任何不清楚的地方,我深表歉意,如果我遗漏了什么,我很乐意提供更多信息。

编辑

这是 /app/assets/javascripts/channels/index.js.erb 中的更新代码

其中 ENV["CABLE_SERVER"] 指向ws://the-action-cable-server.herokuapp.com. 此变量存储在 rails 服务器环境变量中。

0 投票
3 回答
6111 浏览

ruby-on-rails - 验证 ActionCable 连接

我发现了一个很棒的 ActionCable gem,它是 SPA 的一个很好的解决方案。

我只想发送和资产html,所有其他连接都将通过. 交换字符串或整数并不难,但是如何通过 ActionCable 登录呢?cssjsActionCable

0 投票
3 回答
3360 浏览

ruby-on-rails - 具有实时通知架构的 Rails

我需要向我的 Rails 应用程序添加实时通知。这是我发现的不同的可能架构。

1. Rails + Socket.io + Redis:正如本文所建议,具有以下架构:

Rails + Socket.io + Redis

  • Pro:干净,如果 Socket.io 关闭,不会丢失数据
  • 缺点:引入了几种技术(增强了可维护性)

2. Rails + Socket.io:让 Rails 成为 Socket.io 客户端,就像这个 repo 所做的那样:https ://github.com/lyondhill/socket.io-ruby-client

Rails + Socket.io

  • 优点:直截了当
  • 缺点:依赖一个冷门的库

3. Ruby Faye: http: //faye.jcoglan.com/ruby.html

  • :100% 红宝石
  • 缺点:由于需要外部应用程序,因此Socket.io现在比 Faye 更像是一个行业标准。

4. ActionController::Live: http://edgeapi.rubyonrails.org/classes/ActionController/Live.html

  • Pro : 应用程序中的 Rails
  • 缺点:太不成熟

问题:

  • 现在有标准的方法(我会错过)吗?
  • 对我的比较有什么想法(希望这不会关闭)?
0 投票
2 回答
2056 浏览

ruby-on-rails-4 - Rails 4.2 目前在应用程序中加入即时消息的最佳方式是什么?

我一直在阅读 Rails 5(有人知道什么时候发布吗?)将合并对 websockets 的支持,这将使即时消息更容易合并。但我现在正试图为一个相当成熟的应用程序设置一些东西。如果一切顺利,我很快就会拥有相当多的用户,所以它也需要扩展。

我看过 Ryan Bates 的 Private Pub 有点老了,Heroku 的 websocket 示例(我部署在 Heroku 上)、Websocket-rails、actioncable 以及其他一些。大多数看起来都很复杂,所以我想知道我最好的选择是什么,或者 Rails 5 是否会很快推出,我应该等待吗?

谢谢。

0 投票
1 回答
874 浏览

ruby-on-rails - 使用 ActionCable 可靠地实现在线状态

我已经使用 ActionCable 实现了一个聊天功能。我现在正在尝试根据自述文件中用户外观的实现来实现存在状态。

本文档提到以下声明:

正如我们将在下面展示的,当客户端订阅启动时,将调用 #subscribed 回调。在这种情况下,我们借此机会说“当前用户确实出现了”。该出现/消失 API 可以由 Redis 或数据库或其他任何东西支持。

我可以在我的数据库中实现一个在线属性,并在应用程序收到出现/消失通知时更新它。但是我不能保证这个属性的可靠性。例如,在服务器故障的情况下,它可能会变得不同步。

我怎样才能以可靠的方式实现这一点?

0 投票
1 回答
1683 浏览

ruby-on-rails-4 - ActionCable 连续连接/断开循环

我的 Rails 应用程序使用 ActionCable gem,配置为一个简单的聊天应用程序,只有一个频道。

关闭事件不断被调用,然后不断重新打开。我的 Rails 服务器正确地看到了连接;循环发生在浏览器/Javascript 中。

有没有人遇到过这个问题?

0 投票
1 回答
353 浏览

ruby-on-rails - 使用 ActionCable 将 rails 应用程序部署到 Heroku

我使用 ROR 和 ActionCable 创建了简单的在线聊天。然后尝试将应用程序部署到heroku。

但是部署后我有一个奇怪的错误,应用程序无法运行。

Heroku 构建日志:

来自 github 的 action_cable.rb:

宝石文件

在本地机器上一切正常。有任何想法吗?

来源,如果有帮助:https ://github.com/kokosko/chat/

0 投票
5 回答
9981 浏览

ruby-on-rails - ActionCable - how to display number of connected users?

I'm trying to create a simple chat-like application (planning poker app) with Action Cable. I'm a little bit confused by the terminology, files hierarchy and how the callbacks work.

This is the action that creates user session:

A user can then post a vote that should be broadcasted to everyone:

Up to this point everything is clear for me and works fine. The problem is - how do I display the number of connected users? Is there a callback that fires in JS when a user (consumer?) connects? What I want is when I open 3 tabs in 3 different browsers in incognito mode I would like to display "3". When a new user connects, I would like the number to increment. If any user disconnects, the number should decrement.

My PokerChannel:

app/assets/javascripts/poker.coffee:

0 投票
1 回答
2705 浏览

ruby-on-rails - actioncable 无法连接到 websocket

我无法连接到 actioncable websocket。

我将此行添加到我的 routes.rb

我将此文件添加到我的应用程序路径:cable/config.ru

频道/application_cable/channel.rb

频道/application_cable/connection.rb

和我在 assets/javascript/channels/index.coffee 下的 javascriptfiles

然后我开始了我的rails应用程序:

和我的 ActionCalbe-Server 与:

当我在浏览器中打开我的应用程序时,出现以下错误:

我怎样才能解决我的问题?我没有发现错误:/

0 投票
3 回答
2473 浏览

ruby-on-rails - Rails 可操作别名请求来源

我有一个带有子域的应用程序,当我添加一个子域时,我希望能够连接到所有子域的 WebSocket cable/config.ru

它工作正常,但我如何为所有子域设置别名,如下所示:

字符“ *”不起作用。