问题标签 [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.
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 服务器环境变量中。
ruby-on-rails - 验证 ActionCable 连接
我发现了一个很棒的 ActionCable gem,它是 SPA 的一个很好的解决方案。
我只想发送和资产html
,所有其他连接都将通过. 交换字符串或整数并不难,但是如何通过 ActionCable 登录呢?css
js
ActionCable
ruby-on-rails - 具有实时通知架构的 Rails
我需要向我的 Rails 应用程序添加实时通知。这是我发现的不同的可能架构。
1. Rails + Socket.io + Redis:正如本文所建议的,具有以下架构:
- Pro:干净,如果 Socket.io 关闭,不会丢失数据
- 缺点:引入了几种技术(增强了可维护性)
2. Rails + Socket.io:让 Rails 成为 Socket.io 客户端,就像这个 repo 所做的那样:https ://github.com/lyondhill/socket.io-ruby-client
- 优点:直截了当
- 缺点:依赖一个冷门的库
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
- 缺点:太不成熟
问题:
- 现在有标准的方法(我会错过)吗?
- 对我的比较有什么想法(希望这不会关闭)?
ruby-on-rails-4 - Rails 4.2 目前在应用程序中加入即时消息的最佳方式是什么?
我一直在阅读 Rails 5(有人知道什么时候发布吗?)将合并对 websockets 的支持,这将使即时消息更容易合并。但我现在正试图为一个相当成熟的应用程序设置一些东西。如果一切顺利,我很快就会拥有相当多的用户,所以它也需要扩展。
我看过 Ryan Bates 的 Private Pub 有点老了,Heroku 的 websocket 示例(我部署在 Heroku 上)、Websocket-rails、actioncable 以及其他一些。大多数看起来都很复杂,所以我想知道我最好的选择是什么,或者 Rails 5 是否会很快推出,我应该等待吗?
谢谢。
ruby-on-rails - 使用 ActionCable 可靠地实现在线状态
我已经使用 ActionCable 实现了一个聊天功能。我现在正在尝试根据自述文件中用户外观的实现来实现存在状态。
本文档提到以下声明:
正如我们将在下面展示的,当客户端订阅启动时,将调用 #subscribed 回调。在这种情况下,我们借此机会说“当前用户确实出现了”。该出现/消失 API 可以由 Redis 或数据库或其他任何东西支持。
我可以在我的数据库中实现一个在线属性,并在应用程序收到出现/消失通知时更新它。但是我不能保证这个属性的可靠性。例如,在服务器故障的情况下,它可能会变得不同步。
我怎样才能以可靠的方式实现这一点?
ruby-on-rails-4 - ActionCable 连续连接/断开循环
我的 Rails 应用程序使用 ActionCable gem,配置为一个简单的聊天应用程序,只有一个频道。
关闭事件不断被调用,然后不断重新打开。我的 Rails 服务器正确地看到了连接;循环发生在浏览器/Javascript 中。
有没有人遇到过这个问题?
ruby-on-rails - 使用 ActionCable 将 rails 应用程序部署到 Heroku
我使用 ROR 和 ActionCable 创建了简单的在线聊天。然后尝试将应用程序部署到heroku。
但是部署后我有一个奇怪的错误,应用程序无法运行。
Heroku 构建日志:
来自 github 的 action_cable.rb:
宝石文件
在本地机器上一切正常。有任何想法吗?
来源,如果有帮助:https ://github.com/kokosko/chat/
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
:
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 与:
当我在浏览器中打开我的应用程序时,出现以下错误:
我怎样才能解决我的问题?我没有发现错误:/
ruby-on-rails - Rails 可操作别名请求来源
我有一个带有子域的应用程序,当我添加一个子域时,我希望能够连接到所有子域的 WebSocket
cable/config.ru
它工作正常,但我如何为所有子域设置别名,如下所示:
字符“ *”不起作用。