Pusher Channels offers a way to send messages to browsers and devices in realtime using WebSockets. The user would need to have the application open for this to work.
If an app is in the background (e.g. screen locked etc) then Channels messages might not be received. iOS or Android will clean up resources and connections after a period of time and we don't have any control over this.
When the app is offline or in the background, you can send push notifications to the user instead using Pusher Beams. You could even create a system where when a user has the app open, data is delivered at high frequency and in realtime via our Channels product, and when the user closes the app, they can then receive push notifications via our Beams product. You could tell if a user has a Channels subscription or not using presence channels.