1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-16 00:00:07 +01:00
libwebsockets/minimal-examples/ws-client/minimal-ws-client
Andy Green 9eb4c4fac2 client: rfc6724 dns results sorting
RFC6724 defines an ipv6-centric DNS result sorting algorithm, that
takes route and source address route information for the results
given by the DNS resolution, and sorts them in order of preferability,
which defines the order they should be tried in.

If LWS_WITH_NETLINK, then lws takes care about collecting and monitoring
the interface, route and source address information, and uses it to
perform the RFC6724 sorting to re-sort the DNS before trying to make
the connections.
2020-11-28 10:58:07 +00:00
..
CMakeLists.txt cmake: mark all the subprojects as explicitly C 2020-08-31 16:51:36 +01:00
libwebsockets.org.cer cmake: tls: wolfssl 2020-08-10 15:04:10 +01:00
minimal-ws-client.c client: rfc6724 dns results sorting 2020-11-28 10:58:07 +00:00
README.md minimal examples: ws client demonstrating retry and backoff 2020-02-04 14:16:18 +00:00

lws minimal ws client

This connects to libwebsockets.org using the dumb-increment-protocol.

It demonstrates how to use the connection retry and backoff stuff in lws.

build

 $ cmake . && make

Commandline Options

Option Meaning
-d Set logging verbosity
-s Use a specific server instead of libwebsockets.org, eg --server localhost. Implies LCCSCF_ALLOW_SELFSIGNED
-p Use a specific port instead of 443, eg --port 7681
-j Allow selfsigned tls cert
-k Allow insecure certs
-m Skip server hostname check
-e Allow expired certs
--protocol Use a specific ws subprotocol rather than dumb-increment-protocol, eg, --protocol myprotocol

usage

Just run it, it will connect to libwebsockets.org and spew incrementing numbers sent by the server at 20Hz

 $ ./lws-minimal-ws-client
[2020/01/22 05:38:47:3409] U: LWS minimal ws client
[2020/01/22 05:38:47:4456] N: Loading client CA for verification ./libwebsockets.org.cer
[2020/01/22 05:38:48:1649] U: callback_minimal: established
[2020/01/22 05:38:48:1739] N: 
[2020/01/22 05:38:48:1763] N: 0000: 30                                                 0               
[2020/01/22 05:38:48:1765] N: 

...

To test against the lws test server instead of libwebsockets.org, run the test server as

$ libwebsockets-test-server -s

and run this test app with

$ ./lws-minimal-ws-client -s localhost -p 7681 -j

You can kill and restart the server to confirm the client connection is re- established if done within the backoff period.