WebRTC 工作流程
2016-01-25 16:08
387 查看
转载自:WebRTC 工作流程
假设用户A想要和用户B进行视频聊天(使用 socket.io)
这样就能进行视频聊天了。
其中 createPeerConnection 过程如下:
参考资料:
使用WebRTC搭建前端视频聊天室——入门篇
Getting Started with WebRTC
假设用户A想要和用户B进行视频聊天(使用 socket.io)
用户A 服务器 用户B 上线 上线 emit 'online' -> <- emit 'online' on 'online' <- emit 'online' -> on 'online' on 'online' 获得在线用户列表 获得在线用户列表 选择用户B 确认要和用户B聊天 emit 'request chat' -> on 'request chat' emit 'request chat' -> on 'request chat' getUserMedia() <- emit 'stream ok' on 'stream ok' <- emit 'stream ok' on 'stream ok' getUserMedia() emit 'stream ok' -> on 'stream ok' emit 'stream ok' -> on 'stream ok' createPeerConnection() pc.createOffer() pc.setLocalDescription() <- emit 'offer' on 'offer' <- emit 'offer' on 'offer' createPeerConnection() pc.setRemoteDescription pc.createAnswer() pc.setLocalDescription() emit 'answer' -> on 'answer' emit 'answer' -> on 'answer' pc.setRemoteDescription()
这样就能进行视频聊天了。
其中 createPeerConnection 过程如下:
pc = new RTCPeerConnection(config) // 向pc中加入需要发送的流 pc.addStream(localStream) // onicecandidate 处理器会在网络候选可用的时候调用。 pc.onicecandidate = function (event) { if (event.candidate) { socket.emit('candidate', requestSocketId, { type: 'candidate', label: event.candidate.sdpMLineIndex, id: event.candidate.sdpMid, candidate: event.candidate.candidate }); } else { console.log('End of candidates.'); } }; // 如果检测到流媒体流到本地,就把它显示出来,同时把流赋值给 remoteStream pc.onaddstream = function (event) { attachMediaStream(remoteVideo, event.stream); remoteStream = event.stream; };
参考资料:
使用WebRTC搭建前端视频聊天室——入门篇
Getting Started with WebRTC
相关文章推荐
- 语音视频聊天的强大技术支持
- 关于在系统中插入视频聊天的功能问题
- 关于在系统中插入视频聊天的功能问题
- awk学习笔记二-工作流程
- WebRTC 初体验
- WebRTC 简介
- WebRTC起航篇,写在最前面的话
- SimplewebRTC使用指南
- simpleWebRTC:一种简单的开源网页音视频聊天室解决方案(一)
- 在ubuntu上编译WebRTC Android版本
- jitsi-android 编译,视频聊天
- WebRTC现状及实现概要
- WebRTC 初览(1) 概述
- WebRTC 初览(2) getUserMedia 介绍一
- WebRTC 初览(2) getUserMedia 介绍二
- WebRTC环境搭建
- 高性能stun服务器搭建
- Netscaler工作流程
- WebRTC回声抵消模块简要分析