Skip to content

hosten1/WebRTCDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

WebRTCDemo

信令格式

加入房间

发送如下信令:

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;
     
});

sdp交换信息

客户端监听如下方法:

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;
       }
     
   });

发送消息格式

发送ice信息如下:

ocket.emit('message',  {
                roomId:room,
                id: id,
                type: 2,
                candidate: ev.candidate
            },(data)=>{
                console.log('发送成功了 '+JSON.stringify(data));
            });

发送offer信息如下:

socket.emit('message',  {
                roomId:room,
                id: id,
                type: 0,
                sdp: offerSdp
            });

发送answer信息如下:

socket.emit('message', {
                roomId:room,
                id: id,
                type: 1,
                sdp: answerSDP
            });

发送level信息如下:

ocket.emit('leaved',  {
                roomId:room,
                id:selfid
            },(data)=>{
                console.log('发送成功了 '+JSON.stringify(data));
            });