前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TRTC web端内网环境怎么设置代理?

TRTC web端内网环境怎么设置代理?

原创
作者头像
超级佩奇
修改2021-09-07 17:12:36
4.8K1
修改2021-09-07 17:12:36
举报
文章被收录于专栏:内网环境

TRTC web端内网环境怎么设置代理?

可采用Nginx+coturn 代理方案

方案名

适用场景

网络要求

方案一

允许客户端访问特定的外网代理服务器

允许客户端访问外网的proxy s erver

方案二

允许客户端通过内网代理服务器访问外网

允许 proxy server 访问外网

方案一示意图

image.png
image.png

方案二示意图

image.png
image.png

说明:

1.两种方案使用相同的 trtc.js 设置代理方法;

2.两种方案服务器的部署方式有差别,参考部署方案(方案 1方案 2);

3.示意图 Nginx 服务器用于信令代理(websocket);

4.示意图 TURN 服务器用于音视频数据代理(RTCPeerconnection)。

trtc.js 设置代理的接口

通过 Client 中的方法设置代理服务器地址(示例):

代码语言:txt
复制
client.setProxyServer('wss://proxy.example.com:443'); 
client.setTurnServer({ url: '192.168.0.110:3478', username: 'bob', credential: 'bobspassword', credentialType: 'password' }); 

接口参数及说明可参见文档

setProxyServer(url)

  • 设置代理服务器
  • 该方法适用于企业自己部署代理服务器,如 ngnix+coturn 方案。 Note: 该方法需要在 join() 之前调用。

Name

Type

Description

url

string

websocket 代理服务器地址,格式如:‘wss://proxy.example.com:443’

setTurnServer(config)

  • 设置 TURN 服务器
  • 该方法配合 setProxyServer() 使用,适用于企业自己部署代理服务器和 TURN 中转。 Note: 该方法需要在 join() 之前调用。

Name

Type

Description

config

object

TURN 服务器配置项

config 属性说明:

Name

Type

Attrbutes

Description

url

string

TURN 服务器地址

username

string

<optiona>

TURN 服务器验证用户名

credential

string

<optiona>

TURN 服务器验证密码

credentialType

string

<optional>

TURN 服务器验证密码类型,默认是 ‘password’ credentialType 参考

实际示例:

代码语言:txt
复制
const client = TRTC.createClient({ 
mode: 'videoCall', 
sdkAppId, 
userId, 
userSig 
}); 
 
client.setProxyServer('wss://proxy.example.com:443'); 
client.setTurnServer({ url: '192.168.0.110:3478', username: 'bob', 
credential: 'bobspassword', credentialType: 'password' }); 

client 
 .join({ roomId }) 
 .catch(error => { 
console.error('进房失败 ' + error); 
}) 
.then(() => { 
console.log('进房成功'); 
 }); 

说明:

1.在受限网络场景下,trtc.js 通过 Nginx 代理服务器与 TRTC 云端建立连接进行信令

交互;

2.在受限网络场景下,trtc.js 通过 TURN 服务器对音视频数据进行中转,与 TRTC 云

端进行音视频数据交互;

3.TURN 服务器的均衡,可以通过设置一组 TURN 服务器的地址,trtc.js 会在内部进

行随机选择,避免同一台服务器压力过大。

代理服务器部署方案

TRTC 提供开源代理服务器安装脚本,企业用户按下面方法部署代理服务器。具体步骤如

下:

方案一

1.部署 Nginx 服务器

参考 Nginx 服务器安装教程 在 CentOS 或 Ubuntu 系统中安装 Nginx,如果企业已有部

署 Nginx 服务,可以不用部署直接进行配置。

2.配置 Nginx 服务器
代码语言:txt
复制
vi /etc/nginx/nginx.conf 
server { 
#对应参数 signalProxy 中的域名 proxy.trtcapi.com 
server_name proxy.trtcapi.com; 
#对应参数 signalProxy 中的端口 443 
listen 443; 

ssl on; 

location /ws/ { #对应参数 signalProxy 中的"ws" 
proxy_pass https://qcloud.rtc.qq.com:8687/; # TRTC 的服务器 
proxy_http_version 1.1; 
proxy_set_header Upgrade $http_upgrade; 
proxy_set_header Connection "upgrade"; 
} 

#域名对应的 SSL 证书,HTTPS 用,用户自行申请 
ssl_certificate ./crt/1_proxy.trtcapi.com_bundle.crt; 
ssl_certificate_key ./crt/2_proxy.trtcapi.com.key; 
} 
3.执行重新加载 Nginx
代码语言:txt
复制
sudo nginx -s reload
4.部署 TURN 服务器

建议在 CentOSUbuntu 上安装部署 coturn。

5.TURN 服务器配置( /etc/turnserver.conf )
代码语言:txt
复制
vi /etc/turnserver.conf 
//#指定中转服务器监听端口 
listening-port=3478 

//#本机的 ip 
listening-ip=172.27.0.13 

//#在外网的 ip 地址 
external-ip=148.70.115.45 

//#可以分配给客户端连接使用最小端口和最大端口 
min-port=59900 
max-port=60000 
 
//#面向内网客户端的用户名和密码 
user=myname:12345678 

//#服务名称 
server-name=tencent_webrtc 
realm=tencent_webrtc 

//#证书生成参考下面说明 
cert=../etc/turnserver/turn_server_cert.pem 
pkey=../etc/turnserver/turn_server_pkey.pem 

//#处理数据中转的线程个数 
relay-threads=10 

simple-log 
fingerprint 
lt-cred-mech 
no-loopback-peers 
no-multicast-peers 
no-tcp 
no-tls 
no-cli 
no-tlsv1 
no-tlsv1_1 
mobility
6.启动 TURN 服务
代码语言:txt
复制
turnserver -c /etc/turnserver.conf
7.服务器端口开启

打开 turn 服务器的 3478 和( min-port ~ max-port )之间端口

8.公司防火墙设置

确认公司防火墙对部署的 nginx 和 TURN 服务器 IP 限制访问解除。

方案二

1.部署 Nginx 服务器(同方案一)
2.配置 Nginx 服务器(同方案一)
3.执行重新加载 nginx(同方案一)
4.部署 TURN 服务器(同方案一)
5.TURN 服务器配置( /etc/turnserver.conf )

和方案一区别:在 external-ip 上填服务器在内网的地址。

代码语言:txt
复制
//#指定中转服务器监听端口 
listening-port=3478 

//#本机的 ip 
listening-ip=172.27.0.13 
 
//#服务器在内网的 ip 
external-ip=148.70.115.45 

//#可以分配给客户端连接使用最小端口和最大端口 
min-port=59000 
max-port=60000 

//#面向内网客户端的用户名和密码 
user=myname:12345678 

//#服务名称 
server-name=tencent_webrtc19. realm=tencent_webrtc 

//#证书生成参考说明 
cert=../etc/turnserver/turn_server_cert.pem 
pkey=../etc/turnserver/turn_server_pkey.pem 

//#处理数据中转的线程个数 
relay-threads=10 

simple-log 
fingerprint 
lt-cred-mech 
no-loopback-peers 
no-multicast-peers 
no-tcp 
no-tls 
no-cli 
no-tlsv1 
no-tlsv1_1 
mobility
6.启动服务(turnserver.conf)
代码语言:txt
复制
turnserver -c /etc/turnserver.conf
7.turn 服务器端口开启

打开 turn 服务器的 3478 和(min-port - max-port)之间端口。

8.公司防火墙设置

确认内网部署的 Nginx 和 TURN 服务器,可以访问外网。

确认内网部署的 Nginx 和 TURN 服务器,可以访问外网。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TRTC web端内网环境怎么设置代理?
    • 方案一示意图
      • 方案二示意图
        • trtc.js 设置代理的接口
          • setProxyServer(url)
          • setTurnServer(config)
        • 代理服务器部署方案
          • 方案一
          • 方案二
      相关产品与服务
      实时音视频
      实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档