В чем разница между Push API и событиями, отправляемыми сервером?

Из документации я мог выяснить, что Push API и Server Sent Events оба являются полудуплексными, но почему две разные технологии для одной и той же функциональности? Есть ли что-то более важное в Push API?

2 ответа

Решение

Push API позволяет серверу отправлять уведомление клиенту, даже если ваш сайт не открыт, потому что он опирается на сервисных работников.

SSE (или WebSockets) работают до тех пор, пока пользователь использует ваш сайт.

Есть несколько примеров (с документацией) в Web Push раздел поваренной книги ServiceWorker, который поможет вам лучше понять это.

Вы используете Server Sent Events для прямого подключения к вашему сайту, это довольно просто.

Технология Web Push намного сложнее: пользовательский браузер поддерживает одно соединение с push-сервером производителя браузера, который собирает и доставляет все запросы с веб-сайтов (мультиплексирует их). Поскольку сообщения проходят через сторонний сервер, они должны быть зашифрованы. Чтобы использовать Push API, вы (на стороне клиента) получаете URL-адрес конечной точки конкретного браузера, генерируете открытый ключ шифрования и отправляете его обратно на сервер для использования. Затем на своем сервере, когда вы хотите отправить сообщение, вы шифруете сообщение с помощью ключа и отправляете его в конечную точку.

Общая информация о Web Push

Firefox поддерживает активное соединение с push-сервисом, чтобы получать push-сообщения, пока он открыт.

Это главное преимущество Web Push - вы можете отправлять уведомления, как только пользователь откроет браузер, ему не нужно будет посещать ваш сайт. Недостатком является то, что вам нужно получить разрешение от пользователя для этой подписки. Другим недостатком является то, что в настоящее время он далеко не широко поддерживается.

Техническая информация о Push API

Другие вопросы по тегам