当前位置: 首页 > news >正文

有趣的个人网站数据网站

有趣的个人网站,数据网站,长沙市网站设计公司,wordpress 添加链接地址ICE 当我们想要实现在公网环境下的语音/视频通话功能时,就需要用到ICE交互式连接建立。ICE不是一种协议,整合了 STUN 和 TURN 两种协议(用于 NAT 穿透)的框架。 ICE的主要目标是解决NAT(网络地址转换)穿越…

ICE

当我们想要实现在公网环境下的语音/视频通话功能时,就需要用到ICE交互式连接建立。ICE不是一种协议,整合了 STUN 和 TURN 两种协议(用于 NAT 穿透)的框架。

ICE的主要目标是解决NAT(网络地址转换)穿越问题,使得即使在复杂的网络环境下,如防火墙和NAT路由器后面,两个对等体也能够发现彼此并建立连接。

ICE的操作过程如下:

  1. 收集 Candidate
  2. 交换 Cadidate
  3. 按优先级尝试连接

Candidate

在WebRTC中,Candidate(候选) 是指用于在两个对等体(peers)之间建立连接的所有可能的网络地址和传输方式。这些候选包括了本地IP地址、端口号以及可能需要的中继服务器信息。候选的目的是提供一个或多个路径,以便在因网络限制(如NAT、防火墙)而无法直接连接的请款下,仍能够建立通信。

STUN

STUN是一种网络协议,主要目的是解决因NAT(网络地址转换)导致的端到端直接通信问题。STUN提供了一种方法,允许位于NAT后面的设备发现他们在公共互连网上的IP地址和端口号,以及NAT设备的类型。这样,这些设备可以被其他互连网上的设备发现和链接。

简单点说就是获取主机公网IP的

STUN的工作流程如下:

  1. 客户端请求:位于NAT后面的客户端向STUN服务器发送一个请求。
  2. 服务器响应:STUN服务器收到请求后,会将请求的源IP地址和端口号(即客户端在公共互连网上的地址)作为响应的一部分发送回客户端。
  3. 客户端发现:客户端通过STUN服务器的响应知道了自己在公网上的IP和端口
  4. 交换信息:客户端之前可以交换这些信息,尝试直接连接。

交换信息是通过信令通道实现的,STUN主要任务是前两步

在这里插入图片描述

STUN服务器通常是一个简单的服务,它监听UDP端口(通常是3478),并响应发往该端口的STUN请求。

客户端通过STUN服务器建立连接成功时,用户之间是直接连接的。

在这里插入图片描述

STUN协议的局限性在于,它只能帮助设备发现自己的公网地址,但并不能保证两个设备能够直接通信。如果NAT设备不允许未经初始化的外部连接,即使知道了对方的公网地址,直接连接仍可能失败。在这种情况下,可能需要使用TURN协议,它通过中继流量来实现通信。

TURN

TURN协议是一个用于解决NAT穿透问题的协议,它是STUN协议的一个扩展。TURN协议通过在服务器上设置中继服务器,允许NAT后面的客户端之间进行通信。当两个客户端直接建立连接时,例如由于严格的NAT策略,TURN服务器会介入,接收来自一个客户端的数据并转发给另一个客户端。

在WebRTC中,TURN服务器提供了一个中继点,用于在对等体(peers)之间转发数据包。如果STUN协议无法实现直接连接,TURN协议就会作为备选方案,确保通信的建立。

客户端通过TURN建立连接成功时:

在这里插入图片描述

Coturn服务器搭建

下载地址:coturn/coturn: coturn TURN server project (github.com)

官网提供了包管理器和 docker 两种方式。

在这里插入图片描述

apt

apt install coturn
turnserver --log-file stdout

docker

docker run -d -p 3478:3478 -p 3478:3478/udp -p 5349:5349 -p 5349:5349/udp -p 49152-65535:49152-65535/udp coturn/coturn

由于我使用的阿里云ecs配置为2核2G,使用docker启动容器会直接卡死,下面采用包管理器进行安装。

下载 coturn

centos 可以使用 yum 下载 coturn

sudo yum install coturn

使用 openssl 生成 cert 和 pkey 配置的自签名证书

openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes 

生成的证书默认位于/etc/turn_server_cert.pem、/etc/turn_server_pkey.pem

修改配置

修改 coturn 配置

vim /etc/coturn/turnserver.conf 

可以通过ifconfig命令查看内网IP,也可以在实例首页查看

在这里插入图片描述

修改为自己的内网、公网IP,用户名和密码可以自定义。

# 网卡名
relay-device=eth0
#内网IP
listening-ip=172.24.65.118
listening-port=3478
#内网IP
relay-ip=172.24.65.118
tls-listening-port=5349
# 外网IP
external-ip=47.121.25.229
relay-threads=500
#打开密码验证
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
#设置用户名和密码,创建IceServer时使用
user=hhh:123456
# 外网IP绑定的域名
realm=47.121.25.229
# 服务器名称,用于OAuth认证,默认和realm相同,部分浏览器本段不设可能会引发cors错误。
server-name=47.121.25.229
# 认证密码,和前面设置的密码保持一致
cli-password=123456

udp 3478 用于STUN服务,tcp 3478 用于TURN服务,默认 udp 49152-65535 用于媒体中继,需要为这些端口配置安全组。

在这里插入图片描述

启动 coturn

turnserver -o -a -f

测试:Trickle ICE (webrtc.github.io)

If you test a STUN server, it works if you can gather a candidate with type “srflx”. If you test a TURN server, it works if you can gather a candidate with type “relay”.

如果您测试一个STUN服务器,如果您可以收集类型为“srflx”的候选服务器,它就可以工作。如果您测试一个TURN服务器,如果您可以收集类型为“relay”的候选服务器,它就可以工作

填写自己的服务器信息,并点击“Add Server”

在这里插入图片描述

点击下方的“Gather candidates”。若收集到了srflxrelay 类型的候选服务器,表示STUN和TURN可以工作。

在这里插入图片描述

要在JavaScript中使用TURN服务器,你需要在你的WebRTC代码中配置PTCPeerConnection对象,以包含TURN服务器的信息,例如:

const peerConnection = new RTCPeerConnection({iceServers: [{urls: 'turn:ip:3478', // 你的TURN服务器地址和端口username: '',  // 如果需要,填入你的TURN用户名credential: '', // 如果需要,填入你的TURN密码}]
});
http://www.yayakq.cn/news/491637/

相关文章:

  • 长沙做网站公司哪家企业网d1net的功能
  • 东营网站建设价钱表网站制作论坛
  • 深圳网站建设分期付做网站有哪些
  • 上海网络营销有限公司seo做的很好的网站
  • 海米云网站建设企业logo设计规范
  • 建筑类企业网站模板下载wordpress主题更新提醒
  • 西安网站制作托郑州新闻联播
  • 两个彩票网站做赔付东莞最好的网站建设
  • 电商网站建设的关键seo外包服务费用
  • 安徽法制建设网站在线crm百科
  • seo站长工具查询怎样建设简单的网站
  • 易语言怎么把网站音乐做进去如何认识软件开发模型
  • 企业网站的基本内容wordpress 检测插件
  • 高端品牌网站设计公司wordpress与php
  • 吉林省可信网站认证牌匾wordpress投稿页面路径怎么
  • 网站开发公司哪里济南兴田德润实惠吗苏州网站建设创意
  • 同一家公司可以做几个网站吗wordpress改文字大小
  • wap仿制网站教程淘宝数据分析
  • 技术支持 创思佳网站建设鞍山58同城找工作 招聘
  • 自动成交型网站建设国内精自品线一区91制片
  • 做游戏网站用什么系统做自己做的网站百度收索不到
  • 视频网站用什么做的电商网站建站开发语言
  • 宁波专业优化网站制作公司中秋贺卡手工制作图片 简单
  • 赣州宏达网站建设外贸获客软件
  • 网站后台发布新闻深圳广告标识设计公司
  • 静安建设机械网站长沙网站seo优化公司
  • 企业网网站怎么做小程序制作定制开发
  • 全网营销型网站 新闻wordpress 主题详解
  • 石家庄城乡建设管理局网站重庆教育网站建设
  • 网站建设我们的优势wordpress目录结构分析