Ответ
WebSocket — это протокол для двусторонней связи поверх HTTP, идеально подходит для реального времени (чаты, уведомления). Работает по схеме «клиент-сервер» с постоянным соединением.
gRPC — фреймворк для удалённого вызова процедур (RPC) с бинарной сериализацией (Protocol Buffers). Оптимизирован для микросервисов, поддерживает стриминг (односторонний/двусторонний).
Ключевые отличия:
- Протокол: WebSocket — текстовый/бинарный, gRPC — бинарный (Protobuf).
- Использование: WebSocket — события в реальном времени, gRPC — структурированные API.
- Стриминг: gRPC поддерживает несколько режимов (клиент/сервер/двусторонний), WebSocket — только общий канал.
Пример gRPC (Proto):
service Chat {
rpc SendMessage (Message) returns (Empty);
}
Пример WebSocket (JS):
const ws = new WebSocket('ws://example.com');
ws.send('Hello!');