![[webrtc] 交互式连接建立(ICE),第1张 [webrtc] 交互式连接建立(ICE),第1张](/aiimages/%5Bwebrtc%5D+%E4%BA%A4%E4%BA%92%E5%BC%8F%E8%BF%9E%E6%8E%A5%E5%BB%BA%E7%AB%8B%EF%BC%88ICE%EF%BC%89.png)
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连接到服务器
根据前面文章,看一下基本流程项目中需要做远程控制,可以传输指令和音频,领导说用前端做,整合到h5中,于是研究了一下webRTC,基本能解决需求就把项目简化写了一个demo分享出来
核心就是两端通过内网nat穿透建立p2p连接,这里我将peerB作为主控端,初始化时,连接本机获取本地icecandidate,这里icecandidate可以理解为内网nat对外网的映射,可以直接在公网访问的地址,可以是一个公网域名,也可以是服务器ip+端口,获取之后,通过>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)