WebRtcRoom Server,使用Node js开发,信令服务器使用 Socket.IO
Android,iOS,Html,Server均做了实现,若有需要可分别查看。
WebRtcRoomHtml: https://github.com/qdgx/WebRtcRoomHtml
WebRtcRoomAndroid: https://github.com/qdgx/WebRtcRoomAndroid
WebRtcRoomIOS: https://github.com/qdgx/WebRtcRoomIOS
通过Socket.Io进行数据交互,Json格式
----------------------------------------Client To Server----------------------------------------
1:事件名:createAndJoinRoom 客户端通知服务器创建并加入room中,若room已存在则直接加入 {room}
room:房间名称,字符串
2:事件名:offer 发送offer消息 {from,to,room,sdp}
from: 发送者socket连接标识,字符串
to:接收者socket连接标识,字符串
room:房间名称,字符串
sdp:发送者设备sdp描述,字符串
3:事件名:answer 发送answer消息 {from,to,room,sdp}
from: 发送者socket连接标识,字符串
to:接收者socket连接标识,字符串
room:房间名称,字符串
sdp:发送者设备sdp描述,字符串
5:事件名:candidate 发送candidate消息 {from,to,room,candidate{sdpMid,sdpMLineIndex,sdp}}
from: 发送者socket连接标识,字符串
to:接收者socket连接标识,字符串
room:房间名称,字符串
candidate:发送者设备candidate描述,Json类型
sdpMid:描述协议id,字符串
sdpMLineIndex:描述协议的行索引,字符串
sdp:sdp描述协议,字符串
6:事件名:exit 发送exit消息 {from,room}
from: 发送者socket连接标识,字符串
room:房间名称,字符串
----------------------------------------Server To Client----------------------------------------
1:事件名:created 服务器通知客户端信令连接成功 {id,room,peers[{id}]}
id: 当前socket连接标识,字符串
room:房间名称,字符串
peers:Json数组,房间其他客户端socket连接标识集合
id:房间其他socket连接标识
2:事件名:joined 服务器通知客户端当前房间有新连接加入 {id,room}
id: 新socket连接标识,字符串
room:房间名称,字符串
3:事件名:offer 服务器转发offer消息 {from,to,room,sdp}
from: 发送者socket连接标识,字符串
to:接收者socket连接标识,字符串
room:房间名称,字符串
sdp:发送者设备sdp描述,字符串
4:事件名:answer 服务器转发answer消息 {from,to,room,sdp}
from: 发送者socket连接标识,字符串
to:接收者socket连接标识,字符串
room:房间名称,字符串
sdp:发送者设备sdp描述,字符串
5:事件名:candidate 服务器转发candidate消息 {from,to,room,candidate{sdpMid,sdpMLineIndex,sdp}}
from: 发送者socket连接标识,字符串
to:接收者socket连接标识,字符串
room:房间名称,字符串
candidate:发送者设备candidate描述,Json类型
sdpMid:描述协议id,字符串
sdpMLineIndex:描述协议的行索引,字符串
sdp:sdp描述协议,字符串
6:事件名:exit 服务器转发exit消息 {from,room}
from: 发送者socket连接标识,字符串
room:房间名称,字符串