webRTC的简介webRTC的三大技术难点MAC搭建webRTC服务器

webRTC服务器一般包含三部分

安装node版本的房间服务webRTC安装node

brew install node //检测node是否安装成功 node -v

【更多音视频学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

音视频开发(资料文档 视频教程 面试题)(FFmpeg WebRTC RTMP RTSP HLS RTP)

安装房间服务webRTC

git clone https://github.com/androidtencent/WebrtcNodeJS cd WebrtcNodeJS npm install //启动 Server running at http://0.0.0.0:3000/ node server.js

coturn穿透服务

brew install coturn //启动coturn服务 brew services restart coturn //查看coturn命令 man coturn //coturn服务器访问密码 turnadmin -k -u hch -r north.gov -p 1qazxsw2 //得到安全访问密钥 //0xa4a6576444351ec2804f4cf2a2701a1a //0: : SQLite connection was closed. //0: : log file opened: /var/tmp/turn_58775_2022-04-27.log

配置coturn

安装完coturn服务后,默认在/usr/local/etc下会存在turnserver.conf.default文件,我们自己新建turnserver.conf,加入如下信息,注意user和密码是自己设定的内容:

verbose fingerprint lt-cred-mech realm=test user=hch:0xa4a6576444351ec2804f4cf2a2701a1a user=hch:1qazxsw2 stale-nonce no-loopback-peers no-multicast-peers mobility no-cli

重启coturn

brew services restart coturn

安装nginx

brew install nginx //配置地址/usr/local/etc/nginx/nginx.conf //启动nginx brew services restart nginx

配置nginx

vim /usr/local/etc/nginx/nginx.conf

配置内容注意

user root admin; worker_processes auto; pid /usr/local/etc/nginx/logs/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 300; types_hash_max_size 2048; default_type application/octet-stream; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; access_log /usr/local/var/log/nginx/access.log; error_log /usr/local/var/log/nginx/error.log; gzip on; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; upstream web { server localhost:3000; } upstream websocket { server localhost:3000; } server { listen 443; server_name localhost; ssl on; ssl_certificate /usr/local/etc/nginx/cert/server.crt;#配置证书 ssl_certificate_key /usr/local/etc/nginx/cert/server.pem;#配置密钥 ssl_session_cache shared:SSL:1m; ssl_session_timeout 50m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location /wss { proxy_pass http://websocket/; # 代理到上面的地址去 proxy_read_timeout 300s; proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'Upgrade'; } location / { proxy_pass http://web/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }

【更多音视频学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

音视频开发(资料文档 视频教程 面试题)(FFmpeg WebRTC RTMP RTSP HLS RTP)

生成https证书

将生成的证书放到nginx配置目录下/usr/local/etc/nginx

openssl genrsa -des3 -out server.key 2048 //输入密码 1qazxsw2 // 移除密码 openssl rsa -in server.key -out server.key openssl req -new -x509 -key server.key -out ca.crt -days 3650 openssl req -new -key server.key -out server.csr openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt cat server.key server.crt > server.pem

webrtc技术方案(Mac搭建WebRTC服务器)(1)

启动三个服务房间服务

cd /Users/hucaihua/code/git/WebrtcNodeJS node server.js

穿透服务coturn

brew services restart coturn

nginx代理服务

brew services restart nginx //检测nginx是否正常启动 ps -ef|grep nginx

检验一切是否配置成功

在浏览器输入https://localhost,点击信任网站,如果出现自己的头像,则表示配置成功.

如果你对音视频开发感兴趣,觉得文章对您有帮助,别忘了点赞、收藏哦!或者对本文的一些阐述有自己的看法,有任何问题,欢迎在下方评论区讨论!

,