123456789_123456789_123456789_123456789_123456789_

Class: ActionCable::RemoteConnections

Relationships & Source Files
Namespace Children
Classes:
Inherits: Object
Defined in: actioncable/lib/action_cable/remote_connections.rb

Overview

If you need to disconnect a given connection, you can go through the RemoteConnections. You can find the connections you’re looking for by searching for the identifier declared on the connection. For example:

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

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

This will disconnect all the connections established for User.find(1), across all servers running on all machines, because it uses the internal channel that all of these servers are subscribed to.

By default, server sends a “disconnect” message with “reconnect” flag set to true. You can override it by specifying the reconnect option:

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

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(server) ⇒ RemoteConnections

[ GitHub ]

  
# File 'actioncable/lib/action_cable/remote_connections.rb', line 34

def initialize(server)
  @server = server
end

Instance Attribute Details

#server (readonly)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/remote_connections.rb', line 32

attr_reader :server

Instance Method Details

#where(identifier)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/remote_connections.rb', line 38

def where(identifier)
  RemoteConnection.new(server, identifier)
end