OpenVidu
OpenVidu[1] основан на Apache 2.0[2] Открытый исходный код протокола WebRTC Платформа видеоконференцсвязи, адрес основного склада: https://github.com/OpenVidu/openvidu 。
OpenVidu предоставляет набор простых, эффективных и простых в использовании интерфейсов API, которые инкапсулируют и защищают базовые операции WebRTC. Вам нужно только представить сервер и клиент OpenVidu для обработки медиапотоков. Он совместим с несколькими платформами. конечные и серверные платформы, а также оснащен обширной документацией, учебными пособиями и примерами приложений.
features
OpenVidu имеет три версии: CE, Pro и Enterprise. Версия CE имеет открытый исходный код, бесплатна и может использовать большинство важных функций OpenVidu:
editions
Любое приложение OpenVidu состоит из трёх частей:
openvidu-browser.js
SDK и OpenVidu развертыватькоммуникация。architecture
OpenVidu поддерживает облачные платформы и оборудование самообслуживания.,Deploying OpenVidu CE on premises[4] Возможно развертывание производственных сред на собственном оборудовании. OpenVidu полная документация.
полный комплект OpenVidu Развертывание включает в себя к Вниз Служить[5]:
OpenVidu Server (openvidu-server)
:OpenVidu Платформа из мозга, отвечающая за сигнальную сторону;Kurento Media Server (kms)
:OpenVidu Сердце платформы отвечает за средства массовой информации;Coturn (coturn)
:Используется в некоторых специальных сетяхсерединапозволять СМИкоммуникацияиз Служитьустройство;Redis (redis)
: управлять Coturn База данных пользователей в Служить;Nginx (nginx)
: Конфигурация SSL-сертификатизобратный прокси,к Разрешить OpenVidu Server Приложения могут соответствовать стандартам https Порт (443) обеспечивает Служить;Videoconference Application (app)
: OpenVidu Call[6] Приложения или Другие приложения, необязательно.Целью этой статьи является создание минимального полезного набора OpenVidu Испытайте среду и поддержите многосторонние видеоконференции,Таким образом, указанная выше полная развертывание сокращается. Coturn
и Redis
Услуги, использование включает в себя OpenVidu Server
и Kurento Media Server
образ одного контейнера openvidu/openvidu-dev:2.26.0[7] Развертывание и использование OpenVidu Call
Заявка принята https://IP
Наслаждайтесь многосторонними видеозвонками.
Используйте только localhost
или 127.0.0.1
Локальную среду разработки можно использовать напрямую. HTTP, но необходимо передать IP или Доступ к доменному имени по сценарию, WebRTC Для работы требуется безопасное соединение, поэтому в структуру развертывания необходимо добавить компонент обратного прокси, который выглядит следующим образом: Изображение ниже[8] Показано:
proxy
Затем следуйте рисунку выше, чтобы развернуть локальную среду взаимодействия.
Для доступа за пределы локальной среды OpenVidu Сервер, необходимо запускать при запуске обозначение IP адрес[9]:
ip -4 -oneline route get 1.0.0.0 | grep -Po 'src \K\S+'
к MacOS Взяв в качестве примера среду, вы можете использовать следующую команду для запуска включения OpenVidu Server
и Kurento Media Server
из openvidu-dev
Контейнер в сборе OpenVidu deployment
Компоненты развертывания:
# Run OpenVidu deployment container with new env variable
# WARNING: this container is not suitable for production deployments of OpenVidu
# Visit https://docs.openvidu.io/en/stable/deployment
docker run -p 4443:4443 --rm \
-e OPENVIDU_SECRET=MY_SECRET \
-e DOMAIN_OR_PUBLIC_IP=$(ipconfig getifaddr "$(route -n get 1.0.0.0 | grep 'interface' | awk '{print $2}')") \
-e SERVER_PORT=4443 \
-e HTTPS_PORT=443 \
-e FORCE_PLAIN_HTTP=false \
-d \
openvidu/openvidu-dev:2.26.0
Другие сопутствующие операции:
# Посмотреть журнал
docker logs -f $(docker ps -a | grep openvidu-dev | awk '{print $1}')
# Остановить и удалить контейнер
docker rm -f $(docker ps -a | grep openvidu-dev | awk '{print $1}')
Сносно OpenVidu Call[10] Подать заявку для проверки OpenVidu Результаты развертывания сервиса.
openvidu/openvidu-call:2.26.0[11] Изображение содержит Node Версия внешнего приложения, вы можете развернуть архитектурную схему за один шаг. Application server
и Application client
Развертывание компонентов.
docker run -p 5000:5000 --rm \
-e OPENVIDU_URL=https://$(ipconfig getifaddr "$(route -n get 1.0.0.0 | grep 'interface' | awk '{print $2}')") \
-e OPENVIDU_SECRET=MY_SECRET \
-d \
openvidu/openvidu-call:2.26.0
На этом этапе вы можете пройти http://IP:5000
Посетил OpenVidu Call
интерфейс приложения. ВебRTC Соответствующие голосовые, видео и другие функции требуют развертывания. Proxy передается после компонента HTTPS Доступ по протоколу можно использовать в обычном режиме.
Другие сопутствующие операции:
# Посмотреть журнал
docker logs -f $(docker ps -a | grep openvidu-call | awk '{print $1}')
# Остановить и удалить контейнер
docker rm -f $(docker ps -a | grep openvidu-call | awk '{print $1}')
Proxy Компоненту роли разрешено прохождение HTTPS Посетите приложение. Локальную среду можно использовать openvidu-tutorials/certs[12] Предусмотрено в из Сертификате, к и воля openvidu-tutorials/openvidu-angular/nginx.conf Нет. 12 ОК[13] Порт состоит из 4200
Изменить на 5000
:
upstream client-application {
server host.docker.internal:5000;
}
Поместите файл сертификата в certs
путь и поместите скорректированную версию в путь того же уровня. nginx.conf
файл, вы можете использовать следующую команду для завершения Proxy Развертывание компонентов:
# At the root path of the tutorial
# For example: /home/user/openvidu-tutorials/openvidu-hello-world
docker run --rm -p 443:443 \
--add-host=host.docker.internal:host-gateway \
-v $PWD/nginx.conf:/etc/nginx/nginx.conf:ro \
-v $PWD/certs:/etc/nginx/certs:ro \
-d \
nginx
если docker версия меньше чем 20.x, вы можете столкнуться при выполнении приведенной выше команды Error response from daemon: invalid IP address in add-host: "host-gateway".
Из отчетов об ошибках вы можете обратиться к #2664[14] Китайский путь – это host.docker.internal
Настройка доменного имени, соответствующая ИП, например:
# At the root path of the tutorial
# For example: /home/user/openvidu-tutorials/openvidu-hello-world
docker run --rm -p 443:443 \
--add-host=host.docker.internal:$(ipconfig getifaddr "$(route -n get 1.0.0.0 | grep 'interface' | awk '{print $2}')") \
-v $PWD/nginx.conf:/etc/nginx/nginx.conf:ro \
-v $PWD/certs:/etc/nginx/certs:ro \
-d \
nginx
Другие сопутствующие операции:
# Посмотреть журнал
docker logs -f $(docker ps -a | grep nginx | awk '{print $1}')
# Остановить и удалить контейнер
docker rm -f $(docker ps -a | grep nginx | awk '{print $1}')
После завершения развертывания всех компонентов,Сносно https://IP
прийти в гости OpenVidu Call
Приложение, имя пользователя для входа admin
,Пароль активирован выше docker контейнервходящийиз OPENVIDU_SECRET
Переменная среды из значения —— MY_SECRET
:
login
screen share
Прикрепленный может быть использован непосредственно и в полном объеме. nginx.conf
содержание:
events {
worker_connections 512;
}
http {
upstream openvidu-deployment {
server host.docker.internal:4443;
}
upstream server-application {
server host.docker.internal:5000;
}
upstream client-application {
server host.docker.internal:5000;
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/certs/cert.pem;
ssl_certificate_key /etc/nginx/certs/key.pem;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Proto https;
proxy_headers_hash_bucket_size 512;
proxy_redirect off;
# Websockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# OpenVidu deployment API
location /openvidu/api {
proxy_pass http://openvidu-deployment;
}
# OpenVidu WebSocket
location ~ /openvidu$ {
proxy_pass http://openvidu-deployment;
}
# Server application requests
location /api/ {
proxy_pass http://server-application;
}
# Client application requests
location / {
proxy_pass http://client-application;
}
}
}
[1]
OpenVidu: https://openvidu.io/
[2]
Apache 2.0: https://choosealicense.com/licenses/apache-2.0/
[3]
Architecture: https://docs.openvidu.io/en/2.26.0/developing-your-video-app/#openvidu-application-architecture
[4]
Deploying OpenVidu CE on premises: https://docs.openvidu.io/en/2.26.0/deployment/ce/on-premises/
[5]
к Вниз Служить: https://docs.openvidu.io/en/2.26.0/deployment/ce/on-premises/#deployment-instructions
[6]
OpenVidu Call: https://openvidu.io/openvidu-call
[7]
openvidu/openvidu-dev:2.26.0: https://hub.docker.com/layers/openvidu/openvidu-dev/2.26.0/images/sha256-87da7d58a44bdab566168876d7bc07296c5dfcc95a7e901ab0d3c5149caea154?context=explore
[8]
Ниже: https://docs.openvidu.io/en/2.26.0/troubleshooting/#3-test-applications-in-my-network-with-multiple-devices
[9]
обозначение IP адрес: https://docs.openvidu.io/en/2.26.0/troubleshooting/#1-run-the-openvidu-deployment-with-your-local-ip-and-other-configurations
[10]
OpenVidu Call: https://docs.openvidu.io/en/2.26.0/components/openvidu-call/
[11]
openvidu/openvidu-call:2.26.0: https://hub.docker.com/layers/openvidu/openvidu-call/2.26.0/images/sha256-b921f99d349666d0075c10fef0e6cce76b8708336a7279ce70b92a5786ab5a79?context=explore
[12]
openvidu-tutorials/certs: https://github.com/OpenVidu/openvidu-tutorials/tree/master/certs
[13]
openvidu-tutorials/openvidu-angular/nginx.conf Нет. 12 ХОРОШО: https://github.com/OpenVidu/openvidu-tutorials/blob/v2.26.0/openvidu-angular/nginx.conf#L12
[14]
#2664: https://github.com/docker/cli/issues/2664#issuecomment-1294472136