栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

WebRTC 1对1音视频通话 信令协议设计

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

WebRTC 1对1音视频通话 信令协议设计

主要逻辑图

蓝色部分为主要 信令逻辑 (注意箭头)

信令逻辑

采用json封装格式

1. join 加入房间 
2. resp­_join 当join房间后发现房间已经存在另一个人时则返回另一个人的uid;如果只有自己则不返回 
3. leave 离开房间,服务器收到leave信令则检查同一房间是否有其他人,如果有其他人则通知他有人离开 
4. new­peer 服务器通知客户端有新人加入,收到new­peer则发起连接请求 
5. peer­leave 服务器通知客户端有人离开 
6. offer 转发offer sdp 
7. answer 转发answer sdp
8. candidate 转发candidate sdp

比较绕的逻辑
1 resp­_join A先进入房间 B后进入房间后 给B返回A的基本信息
2 new_peer A先进入房间 B进入房间后 给A返回B的基本信息

join
var jsonMsg = {
 'cmd': 'join', 
 'roomId': roomId,
  'uid': localUserId
  };
resp­join
jsonMsg = { 
	'cmd': 'resp‐join',
    'remoteUid': remoteUid 
    };
leave
var jsonMsg = { 
	'cmd': 'leave', 
	'roomId': roomId, 
	'uid': localUserId 
	};
new­peer
var jsonMsg = { 
	 'cmd': 'new‐peer',
	 'remoteUid': uid 
	  };
peer­leave
var jsonMsg = { 
	 'cmd': 'peer‐leave',
	 'remoteUid': uid 
	 };
offer
var jsonMsg = {
	'cmd': 'offer', 
	'roomId': roomId, 
	'uid': localUserId, 
	'remoteUid':remoteUserId, 
	'msg': JSON.stringify(sessionDescription)
	 };
answer
 var jsonMsg = { 
 	 'cmd': 'answer', 
 	 'roomId': roomId, 
 	 'uid': localUserId, 
 	 'remoteUid':remoteUserId, 
 	 'msg': JSON.stringify(sessionDescription) 
 	  };
candidate
var jsonMsg = { 
	 'cmd': 'candidate', 
	 'roomId': roomId, 
	 'uid': localUserId, 
	 'remoteUid':remoteUserId, 
	 'msg': JSON.stringify(candidateJson) 
	 };
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号