みなさんAction Cableで遊んでいますか?
私は絶賛過疎っているチャットで遊んでいますよ。
ActionCableを使っていると今接続している数が知りたいってことありますよね。
そんな時は以下実行でActionCableの接続数合計がわかります。
1 |
ActionCable.server.connections.length |
ただこれだと全ての接続になってしまいます。
特定のチャネルだけの接続数が見たいよーって時は以下を実行すればわかります。
以下の例はActionCableのURLパラメータがhttp:himakannet
であり購読されている個数を取得しています。
1 2 3 4 5 6 7 |
ActionCable.server .open_connections_statistics .map { |con| con[:subscriptions] .map { |sub| JSON.parse(sub)["url"] } } # ここのurlを変えれば特定の接続数を取得できるはず .flatten .select { |url| url == 'http:himakannet' } # ここで特定のチャネル一致 .size |
ただしこれはActionCableのJSで以下の通りにurlパラメータを渡した場合に使います。
1 2 3 4 |
App.chat_room = App.cable.subscriptions.create({ channel: "ChatRoomChannel", url: location_origin() }以下省略 |
ややこしいかな。
参考
ActionCable – how to display number of connected users?
Ruby: How do I find out who is connected to ActionCable?
スポンサードリンク