peerconnect_client与server信令交互

本文介绍了peerconnect_client与server之间的信令交互过程。server作为转发角色,处理client的sign_in、sign_out、wait和post请求。client登录server并接收对端信息,通过TCP发送本机数据,服务端解析并回复,客户端通过OnRead事件读取并显示信息。在交互中,candidate信息的传递是关键,用于建立连接。整个过程确保了两端client能获取彼此的candidate,实现webRTC连接和数据传输。
摘要由CSDN通过智能技术生成

原因:由于今天需要了解一下webRTC源码中examples里面client与server的信令交互.

概况:server只是起到一个转发的过程.将连接的client信息以及client发送的candidate数据转发给同房间的其他client.

 

介绍:

         首先启动server服务器.可以看出server服务器为一个简单的tcp服务器.通过select进行socket对象的遍历.其中主要处理的命令为sign_in,sgin_out,wait,及post转发.client为登录server,并获取server发送的对端信息,和发送本机的信息。下面重点分析一下client流程。

 client:

           首先填写ip和端口,然后点击登录按钮,触发事件为main_wnd中OnMessage方法.代码如下,通过如下代码可知当BN_CLICHED被触发则会调用OnDefaultAction方法。而onDefaultAction方法首先为连接对端服务器.故将会调用startLogin方法

    case WM_COMMAND:
      if (button_ == reinterpret_cast<HWND>(lp)) {
        if (BN_CLICKED == HIWORD(wp))
          OnDefaultAction();
      } else if (listbox_ == reinterpret_cast<HWND>(lp)) {
        if (LBN_DBLCLK == HIWORD(wp)) {
          OnDefaultAction();
        }
      }


void MainWnd::OnDefaultAction() {
  if (!callback_)
    return;
  if (ui_ == CONNECT_TO_SERVER) {
    std::string server(GetWindowText(edit1_));
    std::string port_str(GetWindowText(edit2_));
    int port = port_str.length() ? atoi(port_str.c_str()) : 0;
    callback_->StartLogin(server, port);	
  } else if (ui_ == LIST_PEERS) {
    LRESULT sel = ::SendMessage(listbox_, LB_GETCURSEL, 0, 0);
    if (sel != LB_ERR) {
      LRESULT peer_id = ::SendMessage(listbox_, LB
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值