跳至内容 跳至搜索

Action Cable 远程连接

如果您需要断开某个连接,您可以通过 RemoteConnections 进行操作。您可以通过搜索连接上声明的标识符来找到您要查找的连接。例如

module ApplicationCable
  class Connection < ActionCable::Connection::Base
    identified_by :current_user
    ....
  end
end

ActionCable.server.remote_connections.where(current_user: User.find(1)).disconnect

这将断开为 User.find(1) 建立的所有连接,跨越所有服务器运行在所有机器上,因为它使用所有这些服务器都订阅的内部通道。

默认情况下,服务器会发送一条带有 “reconnect” 标志设置为 true 的 “disconnect” 消息。您可以通过指定 reconnect 选项来覆盖它

ActionCable.server.remote_connections.where(current_user: User.find(1)).disconnect(reconnect: false)
命名空间
方法
N
W

属性

[R] server

类公有方法

new(server)

# File actioncable/lib/action_cable/remote_connections.rb, line 34
def initialize(server)
  @server = server
end

实例公有方法

where(identifier)

# File actioncable/lib/action_cable/remote_connections.rb, line 38
def where(identifier)
  RemoteConnection.new(server, identifier)
end