Один простой способ сделать это - заставить клиента опросить сервер каждые 10 секунд или около того, но я не думаю, что это лучший способ.
Я не хочу передавать уведомления всем клиентам, но только одному клиенту за раз.
В Интернете загружаются статьи о том, как это сделать, но я не могу понять, какой из них более подходит для моей проблемы.
Подумайте об использовании размещенного pub/sub broker, такого как Pusher или Realtime (компания, в которой я работаю), и сосредоточимся на разработке вашего приложения, а не на управлении необходимой инфраструктурой реального времени.
С вашего бэкэнда Rails вы отправляете сообщения через REST API и используете библиотеку JavaScript на основе websocket для их получения в браузерах (подписка).
Для личных сообщений просто подписывайте каждого пользователя на свой собственный канал (возможно, используя свой идентификатор пользователя).