twinfire
Phoenix presence across topics
I am beginning to look at phoenix presence and have some questions about the best way to achieve cross topic presence. My current design has every user having their own topic “user:xyz” and they can connect from many different clients (desktop, mobile1, mobile2, etc). Each user needs to be able to know of the presence of all the other users presence (client xyz should get presence updates for client abc, etc). Do I need to have an user:all topic that each user joins in addition to their user:xyz topic? I apologize if I am missing something but I figured somebody could point me in the right direction.
Thanks.
Most Liked
OvermindDL1
OvermindDL1
Yep, just in an, say, after_join callback in the topic just put something kind of like:
Presence.track(self(), "user:all", blah_meta)
Presence.list("user:all")
The Presence.list/2 call can take the socket or the topic, and the only thing it does with the socket is grab the topic anyway as seen at:
And Presence.track/3, the one that takes a socket, just delegates to Presence.track/4 by taking out the pic and topic anyway, so you can pass in whatever pid and topic you want (from within your topic use pid self()) as can be seen at:
![]()
twinfire
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









