怎么知道webrtc的数据是走的中继还是走的p2p

怎么知道webrtc的数据是走的中继还是走的p2p,第1张

吐槽, 你的分类错了, 导致不能贴代码。

github:

priologic/easyrtc

webRTC/webRTCio

自己开发推荐使用priologic/easyrtc

只是玩玩 对于webRTCio使用简单

npm install webrtcio

Client

<video id="local" autoplay="autoplay"></video>

<video id="remote" autoplay="autoplay"></video>

<script src="/webrtciojs"></script>

<script>

// note: make sure hostname available to all connecting clients

// (ie probably not `localhost`)

rtcconnect('ws://yourserveraddress:8001');

rtccreateStream({"video": true, "audio":false}, function(stream){

// get local stream for manipulation

rtcattachStream(stream, 'local');

});

rtcon('add remote stream', function(stream){

// show the remote video

rtcattachStream(stream, 'remote');

});

// more rtc callbacks are available

</script>

Server

var webRTC = require('webrtcio')listen(8001);

//then a bunch of callbacks are available

服务器 :

公网服务器 购买带有公网IP的云服务器

镜像 :

ubuntu 1604

ubuntu16镜像已经带有coturn的源 可以直接apt-get安装

STUN/TURN的默认端口是3478

除此之外还可以通过 https://webrtcgithubio/samples/src/content/peerconnection/trickle-ice/ 测试ice

介绍

应用场景

要安装的服务

OpenVidu Server (openvidu-server) :OpenVidu 的核心服务,管理kurento server之外的业务功能

Kurento Media Server (kms) : Kurento 媒体服务器提供核心的webrtc 接入、转化、过滤等功能。

Coturn (coturn) : 提供Stun, trun 等服务,用于nat 穿透功能

Redis (redis) : database to manage users in Coturn server

Nginx (nginx): a reverse proxy used to configure SSL certificate and to allow both Openvidu Server and the Application to be served in the standard https port (443)

ideoconference Application (app): OpenVidu Call application or any other application Can be disabled

所有的这些服务通过docker container 的方式安装。

安装

1。 确定以安装docker 和docker compose

如果未安装,可以参考 ubuntu下docker, docker compose安装 的说明

检查文件,发现没有copy隐藏文件env, 于是使用同样的命令显示copy env文件。

#cp env -t /opt/openvidu

生成签名

turn github 地址: https://githubcom/coturn/coturn

测试是否安装成功,若有路径表示成功

复制出 turnserverconfdefault 为 turnserverconf

vim 编辑配置文件,shift+g 跳到最后一行加上以下内容

在防火墙开启 3478 端口

查看是否开启

在腾讯云(阿里云)控制台把 tcp 和 udp 端口 49152-65535 放开(或者全部开放 1-65535 端口,或者只开放 3478 端口,默认 3478)

查看是否在运行

关闭服务

https://webrtcgithubio/samples/src/content/peerconnection/trickle-ice/

输入 turn:你的域名:3478、账号、密码

addserver 后点下面的按钮

看到 relay 和你的公网 ip 表示 turn 服务连接成功

https://wwwcnblogscom/NanKe-Studying/p/16010426html

https://blogcsdnnet/qq_44938451/article/details/122158975

Stun Server是开源的coTurn穿透服务器,Signal Server是开源的Apache Active MQ。

Signal Server用的是开源的Apache ActiveMQ,网上有很多花里胡哨的方法,这个是简单能搭建成功的过程, 搭建过程 。

穿透服务器用的是开源的coturn, 搭建过程

SDP交换

根据MQTT协议订阅发布机制:

订阅同一个主题:(实现接收消息)

发布同一个主题:(实现发布消息)

对于每一个客户端来说唯一标示是ClientId,客户端发布消息时设置的主题也是ClientId

1、客户端连接到ActiveMQ服务器

这里的ClientId,就是在ActiveMQ服务端添加的

这里主要是连接到ActiveMQ的流程

首先,呼叫方initCall,主要作用是创建PeerConnection对象,设备,将音视频数据封装成MediaStream添加到然后打开本地音视频PeerConnection中,显示呼叫页面。

然后呼叫方startCall,主要作用是CreateOffer,SendOffer,所以要发布Topic:呼叫方Message;

假如ClientA呼叫ClientB,首先ClientA订阅主题ClientB,然后ClientB订阅主题ClientA。

Client A给Client B发送消息时,发布主题Client_A_ID和Message。

Client B给Client A发送消息时,发布主题Client_B_ID和Message。

zjf001连接到服务器

根据前面文章,看一下基本流程

修改服务器安全策略

入方向    UDP   49152/65535

入方向    TCP +UDP    3478/3478

出方向    TCP +UDP    3478/3478

service coturn start

 在线验证是否成功

https://webrtcgithubio/samples/src/content/peerconnection/trickle-ice/

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么知道webrtc的数据是走的中继还是走的p2p

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情