WebRTC服务器搭建

一、 node环境搭建

yum install -y nodejs

二、 搭建 Coturn

1.1 Coturn环境
yum install -y openssl openssl-devel
yum install -y libevent-devel 
yum install -y libssl-dev 

yum install -y git
1.2 下载编译安装 Coturn
  1. 下载coturn
git clone https://github.com/coturn/coturn.git
  1. 编译安装 Coturn,分别以下顺序运行
cd coturn
./configure
make
make install
  1. 查看 Coturn 是否安装成功
which turnserver
1.3 生成 tls 证书
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes 

运行后,在 /etc 目录下生成了两个 .pem 文件。

1.4 配置 Coturn
  1. 在 /usr/local/etc/ 目录下有 turnserver.conf.default,将它复制为 turnserver.conf

  2. 在配置文件的末尾加上如下内容

listening-device=eth0
relay-device=eth0
#填写本地IP    
listening-ip= 
#指定侦听的端口
listening-port=3478  
#填写本地IP      
relay-ip= 
#指定云主机的公网IP地址
external-ip= 

#访问 stun/turn服务的用户名和密码       
user=username:123456
#域名,这个一定要设置
realm= turnserver     
 
lt-cred-mech
#证书
cert=/usr/local/etc/turn_server_cert.pem
pkey=/usr/local/etc/turn_server_pkey.pem
 
 
min-port=59000
max-port=65535
Verbose
fingerprint
 
no-stdout-log
syslog
stale-nonce
no-loopback-peers
no-multicast-peers
mobility
no-cli
#no-auth
1.5 启动 Coturn
  1. 命令行输入如下命令启动 turnserver
//启动方式1:	
turnserver -o -a -f -r ronz -c /usr/local/etc/turnserver.conf

//启动方式2:
cd bin
turnserver -v -r 换成公网IP:3478 -a -o
  1. 测试 stun 服务:
turnutils_stunclient -p 3478 turnserver	# turnserver 为公网IP

turnutils_uclient -v -t -T -W 123456 turnserver # -W 是我们上面在配置文件中配置的密码

turnserver 搭建完毕。

三、搭建信令服务器 SignalMaster

1.1 下载安装 SignalMaster
git clone https://github.com/andyet/signalmaster.git

安装依赖

cd signalmaster
npm install
1.2 使用OpenSSL生成自签名SSL证书
  1. 第一步:生成私钥
openssl genrsa -des3 -out server.pass.key 2048

输入一个4位以上的密码

  1. 第二步:生成私钥
openssl rsa -in server.pass.key -out server.key
  1. 第三步:生成CSR(证书签名请求)
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn"

4.第四步:生成自签名SSL证书

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
1.3 配置 SignalMaster

下面需要修改 signalmaster/config/development.json 的配置以上生成的ssl 并且配置 stun 及 turn。

{
  "isDev": true,
  "server": {
    "port": 8888,
    "/* secure */": "/* whether this connects via https */",
    "secure": true,
    "key": "/usr/local/signalmaster/config/server.key",//上一补配置的证书路径
    "cert": "/usr/local/signalmaster/config/server.crt",
    "password": null
  },
  "rooms": {
    "/* maxClients */": "/* maximum number of clients per room. 0 = no limit */",
    "maxClients": 0
  },
  "stunservers": [
    {
      "urls": "stun:127.0.0.1:3478" //公网ip和端口
 }
  ],
  "turnservers": [
    {
      "urls": ["turn:47.106.135.124:3478"],
      "username": "username",  //前面配置turnserver.conf的用户
      "credential":"123456",  //密码
      "expiry": 86400
    }
  ]
}
1.4 启动 SignalMaster
cd signalmaster/
npm start

测试访问

https://公网ip:8888/socket.io/
1.5 SimpleWebRTC demo
git clone https://github.com/andyet/SimpleWebRTC.git
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员奋斗者GO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值