Я бы пошел на опрос. То есть наличие клиентского таймера, который периодически асинхронно вызывает серверную функцию, которая проверяет наличие новых уведомлений и отображает их конечному пользователю.
Другим вариантом может быть то, что называется HTTP server push , но из того, что я прочитал, может быть довольно сложно работать в любом браузере, а также может потребляться больше ресурсов сервера.