gpt4 book ai didi

ruby-on-rails - Rails 5 ActionCable 什么时候开始连接?

转载 作者:数据小太阳 更新时间:2023-10-29 08:59:39 26 4
gpt4 key购买 nike

我今天发现了 ActionCable,并创建了一个非常简单的聊天。现在我想将它添加到我当前的项目中。

何时建立与 channel 的连接?在我的简单聊天中,我有一个名为 Welcome 的 Controller 和一个名为 Demo 的 channel 。在索引页面上,您可以编写/查看消息。我推断当我们访问应用程序的任何页面时,我们会自动连接到该 channel ? (如果我不在 connection.rb 中添加任何说明)

最佳答案

简答

当您加载网页时。

长答案

客户端打开与 actioncable channel 的连接。根据客户端部分的文档:

http://edgeguides.rubyonrails.org/action_cable_overview.html#client-side-components

当您加载网页时(在您的例子中,是欢迎 Controller 的索引操作),这样的 javascript 将执行:

// app/assets/javascripts/cable.js
//= require action_cable
//= require_self
//= require_tree ./channels

(function() {
this.App || (this.App = {});

App.cable = ActionCable.createConsumer();
}).call(this);

后跟一个订阅函数,例如:

# app/assets/javascripts/cable/subscriptions/chat.coffee
App.cable.subscriptions.create { channel: "ChatChannel", room: "Best Room" }

这就是打开与您定义的 channel 的连接(如服务器端 channel 部分中的示例所示):http://edgeguides.rubyonrails.org/action_cable_overview.html#channels

# app/channels/chat_channel.rb
class ChatChannel < ApplicationCable::Channel
# Called when the consumer has successfully
# become a subscriber of this channel.
def subscribed
end
end

当客户端 javascript 订阅时,连接最终会指向您的 channel 对象的 subscribed 方法。

关于ruby-on-rails - Rails 5 ActionCable 什么时候开始连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39579848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com