Display channel users count with Elixir/Phoenix + React/Redux
A few months ago, we decided to implement a users count feature on CaptainFact’s videos pages. It had to be reliable, light and simple. We also wanted to differentiate between logged-in and anonymous users.
The most interesting read I had at the time on this subject was a medium article which has one major flaw: the full users list is returned from the backend and the count occurs on the frontend (which actually respects the default behaviour of Phoenix.Presence
).
Depending on your business, it can represent a privacy issue (you don’t especially want anyone to be able to know who’s connected to your channel) as well as a performance issue.
In the following article, I’ll show you how I implemented Phoenix.Presence
in such a way that it only returns the total of connected / anonymous users. We’ll then see how to bind it to Redux
.
https://blog.benjamin.piouffle.com/display-channel-users-count-elixir-phoenix-react-redux/
Read next MapRewire <~>: Syntactic sugar to quickly bulk rekey maps