mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-16 00:00:07 +01:00

This adds support for POST in both h1 and h2 queues / stream binding. The previous queueing tried to keep the "leader" wsi who made the actual connection around and have it act on the transaction queue tail if it had done its own thing. This refactors it so instead, who is the "leader" moves down the queue and the queued guys inherit the fd, SSL * and queue from the old leader as they take over. This lets them operate in their own wsi identity directly and gets rid of all the "effective wsi" checks, which was applied incompletely and getting out of hand considering the separate lws_mux checks for h2 and other muxed protocols alongside it. This change also allows one wsi at a time to own the transaction for POST. --post is added as an option to lws-minimal-http-client-multi and 6 extra selftests with POST on h1/h2, pipelined or not and staggered or not are added to the CI.
856 B
856 B
lws minimal http client multi
build
$ cmake . && make
usage
The application goes to https://warmcat.com and receives the page data same as minimal http client.
However it does it for 8 client connections concurrently.
Commandline Options
Option | Meaning |
---|---|
-s | Stagger the connections by 100ms, the last by 1s |
-p | Use http/1.1 pipelining or h2 simultaneous streams |
--h1 | Force http/1 only |
-l | Connect to server on https://localhost:7681 instead of https://warmcat.com:443 |
-n | Read numbered files like /1.png, /2.png etc. Default is just read / |
--uv | Use libuv event loop if lws built for it |
--event | Use libevent event loop if lws built for it |
--ev | Use libev event loop if lws built for it |
--post | POST to the server rather than GET |
-c | Create n connections (n can be 1 .. 8) |
--path | Force the URL path (should start with /) |