1*1c60b9acSAndroid Build Coastguard Worker# lws minimal ws client 2*1c60b9acSAndroid Build Coastguard Worker 3*1c60b9acSAndroid Build Coastguard WorkerThis connects to libwebsockets.org using the dumb-increment-protocol. 4*1c60b9acSAndroid Build Coastguard Worker 5*1c60b9acSAndroid Build Coastguard WorkerIt demonstrates how to use the connection retry and backoff stuff in lws. 6*1c60b9acSAndroid Build Coastguard Worker 7*1c60b9acSAndroid Build Coastguard Worker## build 8*1c60b9acSAndroid Build Coastguard Worker 9*1c60b9acSAndroid Build Coastguard Worker``` 10*1c60b9acSAndroid Build Coastguard Worker $ cmake . && make 11*1c60b9acSAndroid Build Coastguard Worker``` 12*1c60b9acSAndroid Build Coastguard Worker 13*1c60b9acSAndroid Build Coastguard Worker## Commandline Options 14*1c60b9acSAndroid Build Coastguard Worker 15*1c60b9acSAndroid Build Coastguard WorkerOption|Meaning 16*1c60b9acSAndroid Build Coastguard Worker---|--- 17*1c60b9acSAndroid Build Coastguard Worker-d|Set logging verbosity 18*1c60b9acSAndroid Build Coastguard Worker-s|Use a specific server instead of libwebsockets.org, eg `--server localhost`. Implies LCCSCF_ALLOW_SELFSIGNED 19*1c60b9acSAndroid Build Coastguard Worker-p|Use a specific port instead of 443, eg `--port 7681` 20*1c60b9acSAndroid Build Coastguard Worker-j|Allow selfsigned tls cert 21*1c60b9acSAndroid Build Coastguard Worker-k|Allow insecure certs 22*1c60b9acSAndroid Build Coastguard Worker-m|Skip server hostname check 23*1c60b9acSAndroid Build Coastguard Worker-n|Skip tls usage 24*1c60b9acSAndroid Build Coastguard Worker-e|Allow expired certs 25*1c60b9acSAndroid Build Coastguard Worker--protocol|Use a specific ws subprotocol rather than dumb-increment-protocol, eg, `--protocol myprotocol` 26*1c60b9acSAndroid Build Coastguard Worker 27*1c60b9acSAndroid Build Coastguard Worker 28*1c60b9acSAndroid Build Coastguard Worker## usage 29*1c60b9acSAndroid Build Coastguard Worker 30*1c60b9acSAndroid Build Coastguard WorkerJust run it, it will connect to libwebsockets.org and spew incrementing numbers 31*1c60b9acSAndroid Build Coastguard Workersent by the server at 20Hz 32*1c60b9acSAndroid Build Coastguard Worker 33*1c60b9acSAndroid Build Coastguard Worker``` 34*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-ws-client 35*1c60b9acSAndroid Build Coastguard Worker[2020/01/22 05:38:47:3409] U: LWS minimal ws client 36*1c60b9acSAndroid Build Coastguard Worker[2020/01/22 05:38:47:4456] N: Loading client CA for verification ./libwebsockets.org.cer 37*1c60b9acSAndroid Build Coastguard Worker[2020/01/22 05:38:48:1649] U: callback_minimal: established 38*1c60b9acSAndroid Build Coastguard Worker[2020/01/22 05:38:48:1739] N: 39*1c60b9acSAndroid Build Coastguard Worker[2020/01/22 05:38:48:1763] N: 0000: 30 0 40*1c60b9acSAndroid Build Coastguard Worker[2020/01/22 05:38:48:1765] N: 41*1c60b9acSAndroid Build Coastguard Worker 42*1c60b9acSAndroid Build Coastguard Worker... 43*1c60b9acSAndroid Build Coastguard Worker``` 44*1c60b9acSAndroid Build Coastguard Worker 45*1c60b9acSAndroid Build Coastguard WorkerTo test against the lws test server instead of libwebsockets.org, run the test 46*1c60b9acSAndroid Build Coastguard Workerserver as 47*1c60b9acSAndroid Build Coastguard Worker 48*1c60b9acSAndroid Build Coastguard Worker``` 49*1c60b9acSAndroid Build Coastguard Worker$ libwebsockets-test-server -s 50*1c60b9acSAndroid Build Coastguard Worker``` 51*1c60b9acSAndroid Build Coastguard Worker 52*1c60b9acSAndroid Build Coastguard Workerand run this test app with 53*1c60b9acSAndroid Build Coastguard Worker 54*1c60b9acSAndroid Build Coastguard Worker``` 55*1c60b9acSAndroid Build Coastguard Worker$ ./lws-minimal-ws-client -s localhost -p 7681 -j 56*1c60b9acSAndroid Build Coastguard Worker``` 57*1c60b9acSAndroid Build Coastguard Worker 58*1c60b9acSAndroid Build Coastguard WorkerYou can kill and restart the server to confirm the client connection is re- 59*1c60b9acSAndroid Build Coastguard Workerestablished if done within the backoff period. 60