Correct code structure for listening to Push Notifications for live data updates


I cant find any information regarding best practices on the scenario im facing,

(Im using the @capacitor/push-notifications plugin)

In my app im using silent push Data Messages sent to certain topics for live user-visible data updates on the screen (changing texts, etc), in addition to the main use of push notifications for displaying push messgaes to the user.

so I have a main listener in a service for general incoming notifications. and in addition I want to have other listeners on certain components that will only listen to specific topics, in order to update visible data on the current screen. and when the screen is destroyed the listeners should stop.

my question is, what would be best practice:

a) should I use a main listener in a service and then by conditioning incoming messages that only belong to a certain topic I would use an observable for example to pass that information to other components listening to that observable?

b) or should I listen generally once in the service, and in every other component that needs to recieve data from certain topics, I will listen again and condition the incoming messages there. will that not init the listener several times if i come in and out of that componenet, do I need to remove that certain listener on component destruction? if so how should I do it as I do not see an option for that in the capacitor plugin. is there a memory leak problem with those listeners?

thanks for any feedback, sorry if the question is not relevant somehow.