MichaelMunavu
Do I need to subscribe individually to each live view that accesses a value from a channel, even if they are all within the same layout?
I am using PubSub to list number of users that are in the database on the sidebar .
The sidebar is in a layout file as such .
<div>
<.sidebar
number_of_users={@number_of_users}
/>
<main >
<.flash_group flash={@flash} />
<%= @inner_content %>
</main>
</div>
I have an on_mount callback that adds the default value of number_of_users as the users in the database.
If this layout is used across multiple liveviews do I have to
- Subscribe to that topic on each liveview
- Call handle_info on each liveview to get the updated value of the users.
Currently, that is what I have gone with( subscribing to the topic on each liveview and calling handle_info on each liveview)
Thanks! ![]()
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
Using Phoenix.LiveView.TagEngine as an EEx.Engine is deprecated!
To compile HEEx, use Phoenix.LiveView.TagEngine.compile/2 instead.
Sta...
New
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app?
Looking for hints regarding:
Addi...
New
Hi all, I wanted to ask how the community is dealing with post-release steps.
Today we have Ecto migrations, which make sure that the db...
New
I am using Oban and occasionally, shortly after a deployment, a handful of jobs can fail because of dependency on other parts of the syst...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
@hugobarauna and I (Alex Koutmos) have been hard at work on writing a book on Nerves that takes you from simply blinking LEDs to building...
New
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
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #performance










First 3 of 3 Posts
victorbjorklund
You can def solve it the way you done already. An alternative is to make a sticky liveview of the sidebar.
The benefits with that would be that you don’t need to fetch the data from the db every time you mount a new liveview (if you for example navigate across liveview sessions) and that you only need to subscribe to the topic in one liveview (the sidebar-liveview). Downside is that it can be a bit overkill (I don’t have a benchmark but I guess having sticky LiveViews have a server cost) and make things more complex (for example if you wanna show the current page option you might have to write some extra js to update that).
Good overview of it: Keep LiveViews alive across live redirects · The Phoenix Files
I would probably stick to your solution if it is only number_of_users in database that needs to be tracked in the sidebar. Sticky liveview is more “worth” it if you for example track 5 different stuff (for example notifications, new messages, new friend requests, etc) in my opinion.
harmon25
You could use a hook that can both subscribe to a topic and also attach some lifecycle callbacks (handle_info,handle_event etc) which can clean things up a bit.
krasenyp
And don’t forget to check if the socket is connected before subscribing to topics.