Rails 7 E109 Live vistor count. ActionCable, Turbo Broadcasts, Kredis

07/02/2023
hotwire server side rendering kredis live update redis websockets turbo

Let's add Live count for total website visitors and Live count for visitors inside a room.

Importantly, we will not deal with user REGISTRATION to identify a visitor. One browser session = one unique visitor with a session_id.

We will use turbo_stream_from to plug into an ActionCable Channel and track websocket subscriptions and un-subscriptions.
Whenever a user subscribes, we will add his browser session_id to a Kredis array.
We will Broadcast the updated Kredis array COUNT to everybody subscribed to the channel.

Sounds quite complex, but I still think of it as a very low-code solution.

Text walkthrough: https://blog.corsego.com/action-cable-broadcast-users-online
Episode source code with comments: https://github.com/corsego/109-live-visitor-count-action-cable-kredis-turbo/commit/645c08eb981edaaad919f070e300a2ad24d28b08

0:00 Demo - Track visitors on a website and in a room
1:51 Track all website visitors with Kredis and ActionCable
12:25 Update live vistiors count with Turbo Stream Broadcasts
14:29 Track visitors in a Room
20:40 Summary and final demo

0
Join the conversation
Sign in to access PRO lessons, access private repos, leave comments, create watch lists.
We collect your email address, name and username to create your account. We do not share your email address with anyone else.