Каким образом YouTube отправляет уведомления в браузер о новых сообщениях в чате в режиме прямого эфира?

  • 15 августа 2023 г. 18:36
Ответы на вопрос 5
Привет! Хотя точная реализация YouTube не обнаружена, я могу предположить несколько возможных способов, которыми YouTube может отправлять уведомления в браузер о новых сообщениях в чате в режиме прямого эфира:

1) Long polling: YouTube может использовать длительные запросы (long polling) для получения обновлений чата. При этом клиент (браузер) отправляет запрос на сервер и ожидает ответа, который возвращается, только когда появляются новые данные. Эта техника позволяет серверу отправить данные в реальном времени, но не нагружать сервер большим количеством постоянных запросов.

2) Websockets: YouTube также может использовать протокол Websockets для связи между сервером и клиентом. Websockets позволяют обоим сторонам отправлять данные в режиме реального времени без необходимости постоянных запросов. Такой подход эффективно реализует передачу данных в режиме реального времени.

3) Server-Sent Events: Ваше предположение о Server-Sent Events (SSE) может быть также верным. SSE позволяют серверу отправлять поток данных клиенту через единственное соединение. Поскольку SSE поддерживаются большинством современных браузеров, YouTube мог бы использовать эту технику для отправки обновлений чата.

Возможно, YouTube использует один или комбинацию этих способов для отправки уведомлений о новых сообщениях в чате. Однако без доступа к исходному коду точно сказать сложно.
Скорее всего, используются вебсокеты. Если вы открываете дебаггер после установки websocket-соединения, то не сможете видеть его.
На последней версии Chrome на Youtube применяется протокол HTTP/3. Возможно, причина в том, что вы не можете найти WebSocket, который не поддерживает этот протокол (и будет ли он поддерживаться вообще?), поэтому уже готовят замену - WebTransport.
Скорее всего, для этого используются вебсокеты. Если вы открываете отладчик после установки вебсокет-соединения, то вы не сможете его увидеть. 
 В последней версии Chrome на YouTube используется протокол HTTP/3. Возможно, проблема заключается в том, что вы не можете найти WebSocket, который не поддерживается данным протоколом. В связи с этим разработчики уже подготовили замену - WebTransport.
Похожие вопросы