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) 
	 };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值