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.
Namespace
Class
Methods
Attributes
| [R] | server |
Class Public methods
new(server)
π Source code
# File actioncable/lib/action_cable/remote_connections.rb, line 25
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 29
def where(identifier)
RemoteConnection.new(server, identifier)
end
π See on GitHub