Ich habe ActionCable.server.open_connections_statistics
, ActionCable.server.connections.length
, ActionCable.server.connections.map(&:statistics)
, ActionCable.server.connections.select(&:beat).count
und ähnliches gesehen, aber dies ist nur "pro Prozess" (Server, Konsole, Server-Arbeiter, usw.). Wie finde ich alle heraus, die zu diesem Zeitpunkt ActionCable abonniert haben? Dies sollte den gleichen Wert für jeden Rails-Prozess in jeder Umgebung (Entwicklung, Bereitstellung, Produktion) zurückgeben. So können Sie beispielsweise in der Entwicklungskonsole auch die Verbindungen auf dem Entwicklungsserver sehen, da sie theoretisch denselben Subskriptionsadapter verwenden (redis, async, postgres).
Rails 5.0.0.beta3, Ruby 2.3.0
Verwandte ActionCable - Wie wird die Anzahl der verbundenen Benutzer angezeigt?
Genauer gesagt für ActionCable
(und für Redis) ...
Angenommen, dieser Kanal:
%Vor% Holen Sie sich den Redis-Adapter von ActionCable, anstatt ihn selbst zu erstellen
(Sie müssten andernfalls die URL von config/cable.yml
eingeben):
Erhalte den Namen des Kanals einschließlich channel_prefix, den du angegeben hast
in config/cable.yml
:
Erhalte alle verbundenen Kanäle von RoomChannel
:
Dekodieren Sie den Namen des Abonnements:
%Vor% Wenn Sie ein Objekt ActiveRecord
abonniert haben, sagen wir Room
(mit stream_for
),
Sie können die IDs extrahieren:
Tags und Links ruby ruby-on-rails-5 actioncable subscriptions publish-subscribe