Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM I want it so that the 2 people who are members of it are instantly notified and have their DM list updated,
I already had some experience with channels and sending messages I created a user channel from where a user can connect with a token (a jwt which holds their subject which is used for authentication) to a topic with their id, for example. user:random_uuid each user has their own channel and joins it on the mount of the application
But for HOW I should actually send the messages I am really confused, I mean to pose this question as a design question and not nessecarily syntax question, since I can figure out the latter by my own. My current idea is as follows: When a user creates a DM, in the dm_controller (Since it would be sort of unreasonable if it was in the channel, improper separation of concerns IMO) it will broadcast/push to 2 topics, user:recipient and user:sender (replace recipient and sender with some ID) with a given event such as create_dm, the user_channel will deal with this and the frontend will see this event and add the DM to it’s state
There’s other another solution where everyone joins a user_channel and messages are only sent out to the intended audience, the sender and recipient, (Not sure yet how that would work, probably handle out). I worry though that this might add extra complication but moreso preformance issues down the line. The former option sounds better anyways but I may be wrong I would really like some advice on how I should handle sending these sort of live updates,
And hell, there’s a chance that both ways I listed aren’t good, but I don’t really know being a newbie
I am using a React Frontend just to clarify. Okay, thanks! ![]()
And sorry I couldn’t find a Phoenix Help section anywhere
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #blog-post
- #ai
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 2- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
rhcarvalho
Hi Andrew! Did you go over the documentation at Channels — Phoenix v1.8.10? At the very bottom, after introducing the main concepts, there’s a link to an example chat app. That might be a good learning material to connect the pieces together.
Best,
Rodolfo
Trolleger
I’ll check that out, thanks