главное понимать то, что это ненадежный канал доставки, причем иногда прям очень ненадежный
Надёжнее конечно со стороны клиента временами сервер опрашивать, есть ли для него месседжи. Или держать соединение с вебсокетом, но его нужно держать и мириться с реконнектами.
Но почему-то так редко делают, разработчики мобильных приложений обычно слёзно просят firebase или apns :)