发送如下信令:
socket.emit('join', roomId);
服务会返回状态所以这里可以使用emitwithAck
客户端监听如下方法:
socket.on('joined', (data) => {
const {roomId, id} = data;
});
服务端会生成一个客户端的id标识
客户端监听如下方法:
socket.on('otherJoined', (data) => {
const {roomId, id} = data;
});
客户端监听如下方法:
socket.on('leaved', (data) => {
const {roomId, id} = data;
});
客户端监听如下方法:
socket.on('message', (data) => {
const id = data.id;
// 服务会向所有用户推送所以过滤掉当前用户
if (id === selfid) {
return;
}
const type = data.type;
switch (type) {
case 0: {// offer 主叫调用createoff发送的offersdp
}
break;
case 1: {// answer 被叫的answer sdp
}
break;
case 2: {// candidate
}
break;
default:
break;
}
});
ocket.emit('message', {
roomId:room,
id: id,
type: 2,
candidate: ev.candidate
},(data)=>{
console.log('发送成功了 '+JSON.stringify(data));
});
socket.emit('message', {
roomId:room,
id: id,
type: 0,
sdp: offerSdp
});
socket.emit('message', {
roomId:room,
id: id,
type: 1,
sdp: answerSDP
});
ocket.emit('leaved', {
roomId:room,
id:selfid
},(data)=>{
console.log('发送成功了 '+JSON.stringify(data));
});