## 舱端请求 - qt舱端接收4010(SC_NotifyRep)消息后,创建offer,返回2004(CS_Offer)消息流程 - SocketClient::Start 定义了接收4010(SC_NotifyRep)消息时,触发SocketClient::OnNotifyRep - SocketClient::OnNotifyRep 调用了 CEgoClient::OnVideoRep - CEgoClient::OnVideoRep 触发了 CEgoWindow::OnNotifyRep - CEgoWindow::OnNotifyRep 调用了 CPeerConnection::CreateOffer - CPeerConnection::CreateOffer 调用了 mrsPeerConnectionCreateOffer - mrsPeerConnectionCreateOffer 会触发 CPeerConnection::LocalSdpReadytoSendCallback - CPeerConnection::LocalSdpReadytoSendCallback 调用了 CPeerConnection::OnLocalSdpReadytoSend - CPeerConnection::OnLocalSdpReadytoSend 调用了 SocketClient::WriteOffer - SocketClient::WriteOffer 向服务端发送2004(CS_Offer)消息 --- ## 服务器端监听 - 服务器端,监听2001(CS_Req),发送4009/4001,给车端 - CUserSocket::InitFnDirector 定义了接收2001(CS_Req)消息时,触发 CUserSocket::OnReqVideo - CUserSocket::OnReqVideo 调用了 RemoNet::VideoDesc CUserManager::ConnectPeerVideo - RemoNet::VideoDesc CUserManager::ConnectPeerVideo 调用了 CUserSocket::ReqVideo - CUserSocket::ReqVideo 发送了4009(SC_NotifyReq)消息给车端 - CUserSocket::OnReqVideo 发送了4001(SC_Req)消息给车端 (注:4001消息是车端舱端都没有用到的) - 服务器端,监听2002(CS_Rep)消息,返回4010(SC_NotifyRep)消息流程 - SocketClient::InitFnDirector 定义了接收2002(CS_Rep)消息时,触发 CUserSocket::OnRepVideo - CUserSocket::OnRepVideo 调用了 CUserManager::GetInstance().ReplyPeerVideo - CUserManager::ReplyPeerVideo 调用了 CUserSocket::RepVideo - CUserSocket::RepVideo 发送了4010(SC_NotifyRep)消息 - 服务器端,监听舱端2004(CS_Offer)消息,发送4012(SC_NotifyOffer)给车端 - CUserSocket::InitFnDirector 定义了接收2004(CS_Offer)消息时,触发 CUserSocket::OnOffer - CUserSocket::OnOffer 会调用 CUserManager::GetInstance().NotifyOffer - CUserManager::GetInstance().NotifyOffer 会调用 CUserSocket::NotifyOffer - CUserSocket::NotifyOffer 发送4012(SC_NotifyOffer)消息,给车端 - 服务器端,监听2005(CS_Answer)消息,发送4011(SC_NotifyAnswer),给舱端 - CUserSocket::InitFnDirector 定义了接收2005(CS_Answer)消息时,触发 CUserSocket::OnAnswer - CUserSocket::OnAnswer 调用了 CUserManager::GetInstance().NotifyAnswer - CUserManager::GetInstance().NotifyAnswer 调用了 CUserSocket::NotifyAnswer - CUserSocket::NotifyAnswer 发送4011(SC_NotifyAnswer)消息给舱端 - 服务器端,监听车端2009(CS_Add)消息 - CUserSocket::InitFnDirector 定义了监听2009(CS_Add)消息,触发 CUserSocket::OnAdd - CUserSocket::OnAdd 发送了4016(SC_NotifyAdd)给全部舱端 - CUserSocket::OnAdd 发送了4007(SC_Add)返回给车端执行结果 - 服务器端,监听舱端2000(CS_Sign)消息 - CUserSocket::InitFnDirector 定义了监听2000(CS_Sign)消息,触发 CUserSocket::OnSigin - CUserSocket::OnSigin 发送了4000(SC_Sign)返回给舱端执行结果 --- ## 车端监听 - 车端监听4012(SC_NotifyOffer)消息,发送2005(CS_Answer)消息流程 - SocketClient::Start 中定义了,如果接收到4012消息(SC_NotifyOffer)后,会调用SocketClient::OnNotifyOffer; - SocketClient::OnNotifyOffer 调用了 CMessageQueue::OnVideoOffer - CMessageQueue::OnVideoOffer 调用了 CMessageQueue::InitPeerConnection,建立pc对象 - CMessageQueue::OnVideoOffer 调用了 CPeerConnection::SetRemoteDescription - CMessageQueue::OnVideoOffer 调用了 CPeerConnection::CreateAnswer - CPeerConnection::CreateAnswer 会调用 mrsPeerConnectionCreateAnswer - mrsPeerConnectionCreateAnswer 会触发 CPeerConnection::LocalSdpReadytoSendCallback - CPeerConnection::LocalSdpReadytoSendCallback 调用了 CPeerConnection::OnLocalSdpReadytoSend - CPeerConnection::OnLocalSdpReadytoSend 调用了 SocketClient::WriteAnswer - SocketClient::WriteAnswer 向服务端发送了2005(CS_Answer)消息 - 车端监听4009(SC_NotifyReq)消息,发送2002消息流程 - SocketClient::Start 中定义了,如果接收到4009消息(SC_NotifyReq),会调用SocketClient::OnNotifyReq - SocketClient::OnNotifyReq 调用了 CMessageQueue::OnVideoReq - CMessageQueue::OnVideoReq 触发了 CMessageQueue::OnNotifyReq - CMessageQueue::OnNotifyReq 创建了 CPeerConnection 对象,放置在全局列表中 - CMessageQueue::OnNotifyReq 调用了 SocketClient::WriteVideoRep,发送了2002(CS_Rep)消息