Рассматривали ли вы JSON поверх HTTP2?
В HTTP2 вы можете использовать серверную передачу, которая позволяет двунаправленную связь. Тем не менее, часто двунаправленная связь между клиентом и сервером, как это, реализуется с помощью модели опроса.
Другим вариантом может быть GRPC, который позволяет потоковые соединения поверх http2. Он часто использует прото в качестве формата сериализации, но не обязан.
Эти двое, возможно, стоит проверить.