首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Webrtc介绍

Webrtc介绍

作者头像
码客说
发布2022-06-19 15:20:45
发布2022-06-19 15:20:45
1.9K0
举报
文章被收录于专栏:码客码客

前言

点对点的流程

多方通讯

WebRTC多方通信的架构

  • Mesh方案 同一个房间支持4-6人
  • MCU方案 适合多人视频会议,对服务器压力较大
  • SFU方案 服务器只做转发不做音视频混流 适合1对多

stun/turn服务器

服务端

coturn是一个stun和turn服务端

代码语言:javascript
复制
npm install coturn
turnserver

找到配置文件

代码语言:javascript
复制
find /usr -name turnserver.conf

我这的路径为

/usr/share/doc/coturn/etc/turnserver.conf

生成证书

代码语言:javascript
复制
openssl req -x509 -newkey rsa:2048 -keyout /usr/local/etc/turn_server_pkey.pem -out /usr/local/etc/turn_server_cert.pem -days 99999 -nodes

在配置文件末尾加入一下内容

代码语言:javascript
复制
# 监听的端口
listening-port=3478
# 监听的内网IP
listening-ip=0.0.0.0
# 监听的外网IP
external-ip=49.4.27.42
# 设置账号密码
user=psvmc:123456

cli-password=123456

#UDP 最小端口和最大端口
min-port=40000
max-port=60000

# 证书
cert=/usr/local/etc/turn_server_cert.pem
pkey=/usr/local/etc/turn_server_pkey.pem

内网地址可以通过

代码语言:javascript
复制
ifconfig

找到eth0对应的IP

指定配置文件启动服务

代码语言:javascript
复制
killall -9 turnserver
turnserver -v -r 49.4.27.42 -a -o -c /usr/share/doc/coturn/etc/turnserver.conf

我们进入这个地址测试

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

测试stun的时候不需要输入账号密码,只需要输入第一行,以stun:开头

stun:49.4.27.42:3478

需要输入turn地址,以turn:开头,以及账号密码

turn:49.4.27.42:3478 psvmc 123456

如图

注意

只要出现Done即为成功,下面提示的fail不用在意。

客户端

https://www.npmjs.com/package/stun

代码语言:javascript
复制
npm i stun

测试

使用谷歌的stun服务器

代码语言:javascript
复制
const stun = require('stun');

async function getIp() {
    const res = await stun.request('stun.l.google.com:19302');
    console.log('your ip', res.getXorAddress().address);
}

getIp();

可以用这个网址去测试stun和turn的有效性: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 点对点的流程
    • 多方通讯
  • stun/turn服务器
    • 服务端
    • 客户端
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档