问题标签 [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 - ActionCable、Heroku 自定义域和 Cookie
这是场景。我正在将 ActionCable 用于一个站点(我们称之为www.example.com
)。它在开发中完美运行,但是一旦我将它推送到 Heroku,我就会收到 WebSocket 连接的 302 错误。
问题似乎源于我让 Heroku 使用自定义域这一事实。因此,如果我将 WebSocket 指向wss://example.com
,它会给我一个 302,我假设是因为它被重定向到example.herokuapp.com
url?
所以鉴于这个问题,我被迫将 WebSocket 连接指向wss://example.herokuapp.com
. 我现在遇到的问题是,因为它本质上是我指向的一个新域,所以来自 example.com 的 cookie 不与example.herokuapp.com
. 这意味着example.herokuapp.com
正在传递一个空白 cookie,该 cookie 实际上是在我用于身份验证的 example.com 上设置的。
我通过记录未签名的cookie(只是暂时未签名以进行测试,不要担心安全性)并在example.herokuapp.com
服务器上设置该cookie来验证这是问题所在。之后它工作得很好。
显然,我不能让某人去这两个网站只是为了设置一个该死的 cookie...
我希望找到一种方法来解决原始问题,并能够将 WebSocket 指向我的自定义域,wss://example.com
而不必担心 cookie 签名问题。这可能吗?
example.herokuapp.com
如果没有,在域上设置 cookie 的最佳方法是什么?
PS 是的,我查看了有关 ActionCable 和 Heroku 的其他 SO 问题,但似乎没有一个涉及自定义域。这个讨论了一种 cookie 解决方法,但我觉得它不适用于这种情况,因为它们不是相同的子域:Deploying Ruby on Rails app to Heroku while using Action Cable (Puma port listener)
感谢您花时间帮助我:)
[编辑] 这里似乎与这个问题非常相似,但我得到的是 302 而不是 503。Heroku 错误 503,多个域上的 webSockets
android - 如何将 android 连接到 actioncable websocket 连接?
我是 Android 开发的新手,我正在尝试在我的 Android 应用程序中添加一个聊天室,由 Rail 的新 actioncable 提供支持。我目前的聊天室使用 Firebase 工作,这很酷。但是,我想拥有 Firebase 不支持的其他功能,所以我想将所有内容移到我的服务器上。问题是我对android上的websockets了解不多。
下面是在 rails 浏览器端使用的 javascript 信息。这在没有问题的情况下有效。
elixir - 凤凰频道的广播如何影响其他节点上的客户端?
在使用 WebSockets 时,我正在尝试将 Phoenix Channels 与新的Rails ActionCable进行比较。
在某些情况下,ActionCable 在向所有客户端广播消息时使用 Redis 来处理 PubSub。示例场景:单独节点上的 3 个 rails 进程中的 1 个将能够向连接在所有 Web 服务器上的客户端广播。这是通过点击 Redis 来完成的,Redis 依次发布到所有 rails 服务器,然后推送到所有连接的客户端。
我最近读到了Phoenix websocket 连接实现的 200 万个 websocket 连接。
还发现了这个 gem:Phoenix 1.0 发行说明提到了有关频道的内容:
即使在机器集群上,您的消息也会自动跨节点广播
Phoenix 如何能够跨节点向客户端广播?它是否在后台使用邮箱和/或其他一些进程间通信?
这类似于本文中的问题 2 )。
谢谢!
ruby-on-rails - 未初始化的常量 > ActionCable::Server::Configuration::ApplicationCable
当我运行服务器时,它的抛出错误显示在下面的日志中。我用谷歌搜索了很多,但没有找到背后的原因。有人请给它一些光。
宝石文件
日志:
ruby - application 和 actioncable 不会共享 cookie
我正在使用设计进行身份验证,但是当我实施您的方法时,我得到“未经授权的连接尝试被拒绝”
经过几个小时的搜索,我发现:
返回零。在下面的代码块中。
我查了一下,肯定有一个cookie,但它不包含Devise设置的cookie数据。
要检查是否真的设置了“user.id”,我在视图中提出它。例外情况,这将返回用户 ID
我的问题/问题:
似乎 cookie 在 actioncable 服务器上不可用。
有没有办法将 Devise 设置的 cookie 与有线电视服务器共享?
ruby-on-rails - Redis 重新连接失败 - 操作电缆
我正在使用 Rails 5 预发行版上的 Action Cable。每当我启动服务器时,我都会收到此错误
重新启动服务器几次没有帮助。有什么我做错了吗?
我在 Ubuntu 14.04 上工作
amazon-web-services - AWS 上的 ActionCable:WebSocket 握手期间出错:意外响应代码:404
我们正在尝试将 DHH 的简单 Rails 5 聊天示例部署到 AWS 上的单个自包含 EC2 实例。代码可在此处获得:https ://github.com/HectorPerez/chat-in-rails5
我们使用 Elastic Beanstalk 来启动单个实例,因此:
这是一个最小的安装,所以没有 Elasticache,也没有负载均衡器。为了在 EC2 实例上安装 redis,我们添加了一个 .ebextensions 配置文件,如下所示:https://gist.github.com/KeithP/08b38189372b7fd241e5#file-ebextensions-redis-config;Git 提交和部署。
但是 websocket 不起作用:检查浏览器控制台,我们看到这个错误一遍又一遍地重复:
服务器 production.log 为每个“Finished /cable”调用显示 2 个“Started GET /cable”。ActiveCable 没有 DEBUG 消息:
websocket - 无法使用 wscat 连接到 Ruby on Rails 5 Beta 上的 ActionCable WebSocket
我运行了 Rails 5 Beta 附带的 ActionCable 聊天室示例。Web 应用程序运行良好,数据在 WebSocket 上上下流动。
但是,当我尝试wscat
从命令行直接使用连接到 WebSocket 时,出现连接错误。
wscat
连接尝试:
错误响应:
起初,我认为 Rails 伪造保护禁止了连接。所以我将以下内容添加到config/environments/development.rb
:
但是,我遇到了同样的连接错误。
我尝试使用wsd
命令行工具连接到 ActionCable WebSocket。wsd
更糟糕的是,它因内核恐慌而崩溃。
我还对其他 WebSocket 进行了测试wscat
,wsd
包括 WebSocket Echo Test http://www.websocket.org/echo.html,它们运行良好。
我难住了。有什么建议么?
nginx - 带有 puma 的 Rails 5 ActionCable 的 NGINX 配置
我将 Jelastic 用于我的开发环境(尚未投入生产)。我的应用程序使用 Unicorn 运行,但我发现了带有 ActionCable 的 websockets 并将其集成到我的应用程序中。
在本地一切正常,但是在部署到我的 Jelastic 环境(使用默认 NGINX/Unicorn 配置)时,我在我的 javascript 控制台中收到此消息,并且在我的访问日志中看不到任何内容
我曾经在我的本地环境中使用过,我通过在我的配置文件中添加所需的 ActionCable.server.config.allowed_request_origins 来解决它。所以我仔细检查了我的开发配置,没关系。
这就是为什么我想知道是否有针对 NGINX 配置的特定内容,而不是 ActionCable git 页面上解释的内容
对于我的应用程序,我遵循了此处输入链接描述中的所有内容,但没有提及 NGINX 配置
我知道带有 ActionCable 的 websocket 是相当新的,但我希望有人能够在这方面给我一个领导
非常感谢
ruby-on-rails - 带 nobrainer 的 Rails 5 动作电缆无法正常工作
我尝试了https://github.com/rails/actioncable-examples中的动作电缆示例。它与 ActiveRecord 配合得很好。与 NoBrainer 一起用于 rethinkDB 时,我收到ActiveJob::SerializationError (Unsupported argument type: Comment) 。所以我只是通过 id 而不是 self 如下所示的 activejob。但是动作有线服务器无法收听任何频道,并且不会调用 CommentsChannel 方法。
评论.rb
评论频道.rb
评论.咖啡