WebRTC中peerconnectclient&server 简析【转】
来源:互联网 发布:数据库系统的三级模式 编辑:程序博客网 时间:2024/06/05 09:49
来自:http://blog.csdn.net/oldmtn/article/details/49778099
/////////////////////////////////////////////////////////////////
// A. 第一台client连接服务器1. MainWnd::OnDefaultAction里面接收用户单击“connect"的事件
2. 委托给回调Conductor::StartLogin执行连接操作
3. Conductor::StartLogin里再命令PeerConnectionClient::Connect执行连接操作
在该函数里,若服务器地址未解析,需要先解析,然后才开始连接
4(optional). 当需要解析时,若PeerConnectionClient::OnResolveResult解析成功,才继续执行
5. 当解析成功,调用PeerConnectionClient::DoConnect执行连接操作, 该函数对socket做一些相关的初始化工作
6. 当相关的初始化工作完成后,调用PeerConnectionClient::ConnectControlSocket来向server发送连接命令
7. 若连接成功,则回调PeerConnectionClient::OnConnect被调用, 这里发送/sign_in数据包
8. // A1 -- 服务器执行相关的处理工作
9. peer在PeerConnectionClient::OnRead里接收到其他peer的数据包,并确定自己登录成功,并使用hanging_get_开始连接server
10. 连接成功后,在PeerConnectionClient::OnHangingGetConnect里面向服务器发送/wait请求
11. // A2 -- server接收到新登录的peer的/wait请求时,不做任何处理
/////////////////////////////////////////////////////////////////////
// A1. 服务器处理client的/sgin_in请求
1. main的while循环监听套接字被触发,调用accept获取和该peer通信的socket,
并将该socket加入到socket数组中,然后发送其他peer的信息给新连接的peer
/////////////////////////////////////////////////////////////////////
// A2. 服务器处理client的/wait请求
1. 当server在main的while里面接收到client的/wait请求时,它不做任何处理
2. while循环接收到该peer的"/sign_in?hwh@Mountain-hooray"请求。
/////////////////////////////////////////////////////////////////
// B. 非第一台client连接服务器
1. 这个过程和第一台client连接服务器的情况类似
/////////////////////////////////////////////////////////////////
// C. 当peer A请求与peer B通话时
// peer A部分
1. 用户在MainWnd::OnDefaultAction里触发通话命令
2. 其在回调Conductor::ConnectToPeer里执行相关连接工作
该回调会调用InitializePeerConnection执行一些初始化工作并用CreateOffer创建发送端,设置Conductor为回调类
3. 当Conductor创建Offer成功后, 回调Conductor::OnSuccess被调用, 该函数里面构建一个json的sdp数据发送给server(类型为offer)
4. // C1 -- 服务器处理peer的请求和另一端聊天的数据
// peer B部分
5. PeerConnectionClient::OnHangingGetRead会收到服务器传来的开启视频会话的命令
6. PeerConnectionClient::OnMessageFromPeer里面继续处理
7. 交给其回调Conductor::OnMessageFromPeer来处理
/////////////////////////////////////////////////////////////////
// C1
1. 在main的while循环里面, server把"peer A请求向peer B进行通话的消息"发送给peer B
0 0
- WebRTC中peerconnectclient&server 简析【转】
- WebRTC中peerconnectclient&server 简析
- webrtc示例peerconnection_client&server
- webrtc (6) 在Webrtc中集成VideoToolbox
- webrtc中yuv
- WebRTC中最简单loopback摄像头&麦克风的例子【转】
- WebRTC中RTP/RTCP协议实现分析【转】
- 为WebRTC 应用部署Turn Server
- rfc5766-turn-server webrtc穿透服务器配置
- webrtc中AudioProcessing的使用
- webrtc中scope_ptr的使用
- WebRTC 中RTT实现方法
- WebRTC中传输层优化
- WebRTC录音【转】
- WebRTC
- WebRTC
- WEBRTC
- webrtc
- tcp三次握手,Wireshark实践
- 深入浅出 RecyclerView
- 立足GitHub学编程:13个不容错过的Java项目
- Android源码编译环境的配置以及源码编译(find7)
- springmvc框架下hdfs下载文件流直接发送httpresponse
- WebRTC中peerconnectclient&server 简析【转】
- Spring事务管理
- hdoj3018 Ant Trip 欧拉回路
- Java API之输入输出流
- c语言常用检查清单
- [技巧]用WinRAR解压7z.001格式的文件
- android studio 的project structure选项打不开怎么办?
- Amcharts属性的含义
- HDU 5547(DFS + 4*4数独)