C websocket library, libwebsockets



我正在浏览C websocket library libwebsockets客户端示例。

但我不明白示例的目的是什么。

这是一个例子,这个例子有两个连接(在代码中wsi_dumbwsi_mirror)我认为这是相同的,我不知道第二个连接的目的是什么。

使用第一个连接(在代码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 lifetimen", mirror_lifetime);
    } else {
        mirror_lifetime--;
        if (mirror_lifetime == 0) {
            fprintf(stderr, "closing mirror sessionn");
            libwebsocket_close_and_free_session(context,
                wsi_mirror, LWS_CLOSE_STATUS_GOINGAWAY);
            /*
             * wsi_mirror will get set to NULL in
             * callback when close completes
             */
        }
    }
}

我可能会把它混在一起,但libwebsockets中有一个示例,您只需打开第二个浏览器(窗口或选项卡),然后看到您在第一个浏览器中绘制的所有线条和圆圈镜像并发送到第二个浏览器。

相关内容

  • 没有找到相关文章

最新更新