2014-11-21 3 views
1

Я просматриваю C веб-библиотеку libwebsockets на стороне клиента.C websocket library, libwebsockets

Но я не понимаю, что это за цель.

Here - пример, этот пример имеет два соединения (в коде wsi_dumb и wsi_mirror), которые я думаю, и я не знаю, для чего предназначена вторая связь.

используя первый conenction (в коде wsi_dumb), кажется, ждать запроса от сервера с libwebsocket_service(), а затем ... что со вторым соединением (в коде wsi_mirror)?

И ниже - часть кода, который я говорю.

wsi_dumb = libwebsocket_client_connect(context, address, port, use_ssl, 
      "/", argv[optind], argv[optind], 
      protocols[PROTOCOL_DUMB_INCREMENT].name, ietf_version); 

/* 
* sit there servicing the websocket context to handle incoming 
* packets, and drawing random circles on the mirror protocol websocket 
*/ 

n = 0; 
while (n >= 0 && !was_closed) { 
    n = libwebsocket_service(context, 1000); 

    if (wsi_mirror == NULL) { 

     /* create a client websocket using mirror protocol */ 

     wsi_mirror = libwebsocket_client_connect(context, address, port, 
      use_ssl, "/", argv[optind], argv[optind], 
        protocols[PROTOCOL_LWS_MIRROR].name, ietf_version); 

     mirror_lifetime = 10 + (random() & 1023); 

     fprintf(stderr, "opened mirror connection with %d lifetime\n", mirror_lifetime); 

    } else { 

     mirror_lifetime--; 
     if (mirror_lifetime == 0) { 
      fprintf(stderr, "closing mirror session\n"); 
      libwebsocket_close_and_free_session(context, 
       wsi_mirror, LWS_CLOSE_STATUS_GOINGAWAY); 

      /* 
      * wsi_mirror will get set to NULL in 
      * callback when close completes 
      */ 
     } 
    } 
} 

ответ

0

Я мог бы смешать его, но есть пример в libwebsockets, где вы просто открыть второй браузер (окно или вкладка), а затем увидеть все линии и круги, нарисованные в первом браузере зеркального и послали к второго браузера.

Смежные вопросы