Action Cable Remote Connections
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)
Namespace
Class
Methods
Attributes
[R] | server |
Class Public methods
new(server)
📝 Source code
# File actioncable/lib/action_cable/remote_connections.rb, line 32
def initialize(server)
@server = server
end
🔎 See on GitHub
Instance Public methods
where(identifier)
📝 Source code
# File actioncable/lib/action_cable/remote_connections.rb, line 36
def where(identifier)
RemoteConnection.new(server, identifier)
end
🔎 See on GitHub