README.MD

Запуск проекта

  1. Локальный запуск:
    Запустите server.py на хостовой машине и откройте index.html в браузере.

  2. Запуск на разных машинах:

    • Серверную часть (server.py) можно запустить на отдельной машине (по вашему усмотрению)
    • В файле index.html обязательно укажите IP-адрес сервера и порт
  3. Удалённое подключение:
    Для подключения с удалённой машины или виртуальной среды:

    • Откройте index.html с корректными настройками IP/порта
    • После этого установится соединение между участниками

WebRTC: Ключевые функции и их роли

Основные функции WebRTC

  1. navigator.mediaDevices.getUserMedia()
    Захватывает поток с камеры и микрофона. Результат — MediaStream, который сразу выводится в <video id="localVideo"> и добавляется в RTCPeerConnection.

  2. new RTCPeerConnection(rtcConfig)
    Создаёт объект соединения для обмена медиапотоками и данными. В конфигурации указываются STUN/TURN-серверы для поиска и пробивки NAT.

  3. pc.addTrack(track, stream)
    Добавляет каждую дорожку (video/audio) из локального потока в соединение для передачи удалённой стороне.

  4. pc.onicecandidate
    Срабатывает при нахождении нового ICE-кандидата (IP-адреса/порта для пиров). Кандидаты передаются другому участнику через канал сигнализации.

  5. pc.createOffer() / pc.createAnswer()
    Создают SDP-оффер и SDP-ответ — описания возможностей кодеков, протоколов и сетевых каналов. Оффер генерируется инициатором, ответ — принимающей стороной.

  6. pc.setLocalDescription() / pc.setRemoteDescription()
    Устанавливают локальное SDP-описание и SDP от партнёра. Обеспечивают фазу согласования (SDP-handshake).

  7. pc.ontrack
    Событие возникает при добавлении дорожек удалённой стороной. Полученный MediaStream выводится в <video id="remoteVideo">.

  8. Сигнализация (sendSignal / onSignal)

    WebRTC не включает механизм передачи офферов/ответов и кандидатов. Реализация сигнализации должна быть выполнена самостоятельно через:

    • WebSocket
    • HTTP-polling
    • Любой другой серверный канал связи
Конвейеры
0 успешных
0 с ошибкой