Из документации я понял, что Push API и Отправленные сервером события являются полудуплексными, но почему две разные технологии для одной и той же функциональности? Есть ли что-то более значимое в Push API?
В чем разница между Push API и событиями, отправленными сервером?
Ответы (2)
Push API позволяет серверу отправлять уведомление клиенту, даже если ваш сайт не открыт, поскольку он зависит от сервис-воркеров.
SSE (или WebSockets) работают до тех пор, пока пользователь использует ваш сайт.
В разделе Web Push
поваренной книги ServiceWorker есть несколько примеров (с документацией), которые помогут вам понять Это лучше.
Вы используете Server Sent Events для прямого подключения к вашему веб-сайту, это довольно просто.
Технология Web Push намного сложнее, браузер пользователя поддерживает одно соединение с push-сервером производителя браузера, который собирает и доставляет все push-уведомления с веб-сайтов (мультиплексирует их). Поскольку сообщения проходят через сторонний сервер, они должны быть зашифрованы. Чтобы использовать Push API, вы (на стороне клиента) получаете URL-адрес конечной точки поставщика для конкретного браузера, создаете открытый ключ шифрования и отправляете его обратно на свой сервер для использования. Затем на вашем сервере, когда вы хотите отправить сообщение, вы шифруете сообщение с помощью ключа и отправляете его в конечную точку.
Firefox поддерживает активное подключение к службе push-уведомлений, чтобы получать push-сообщения, пока она открыта.
В этом главное преимущество Web Push - вы можете доставлять уведомления, как только пользователь открывает браузер, ему не нужно будет заходить на ваш сайт. Недостатком является то, что вам нужно будет получить разрешение от пользователя для этой подписки. Другим недостатком является то, что в настоящее время он далеко не поддерживается.
Техническая информация о Push API