Отдельный эндпоинт на websocket. А как вы собираетесь на json-rpc это делать? Это же тот же самый синхронный http. Или вы в ws собираетесь засунуть его? :)
Почему grpc все выбирают, потому что поверх protobuf написан и меньше данных по сети гуляет и парсится легче если трафика много или устройство не особо мощное
Ну тебе на входе говорят, будешь использовать grpc ты сразу подумай, что у тебя есть определенные обязательства перед клиентом и ты не можешь поменять схему данных на лету