Polling (пинг) — получатель сам спрашивает по таймеру: «есть новое?». WebSocket — постоянное соединение, сервер сам пушит данные в момент события. Webhook — сервер сам делает HTTP-запрос на заранее заданный публичный URL при событии.
Универсального «лучшего» нет — всё зависит от ситуации. Ниже три задачи: реши каждую, выбрав транспорт, который выдержит нагрузку (все тесты зелёные).
Веб-приложение доставки еды. На странице заказа клиент видит статус:
«Готовится» → «Курьер в пути» → «Доставлен»
Статус меняет ресторан, и на странице клиента он должен обновляться сам, без перезагрузки. В час пик одновременно открыто много страниц заказов — от нескольких до тысяч. Статус может смениться в любой момент, и увидеть его нужно сразу.
Каким способом сервер будет доставлять новый статус в открытые браузеры?