xref: /aosp_15_r20/external/libwebsockets/minimal-examples/raw/minimal-raw-vhost/README.md (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker# lws minimal ws server raw vhost
2*1c60b9acSAndroid Build Coastguard Worker
3*1c60b9acSAndroid Build Coastguard WorkerThis demonstrates setting up a vhost to listen and accept raw sockets.
4*1c60b9acSAndroid Build Coastguard WorkerRaw sockets are just sockets... lws does not send anything on them or
5*1c60b9acSAndroid Build Coastguard Workerinterpret by itself what it receives on them.  So you can implement
6*1c60b9acSAndroid Build Coastguard Workerarbitrary tcp protocols using them.
7*1c60b9acSAndroid Build Coastguard Worker
8*1c60b9acSAndroid Build Coastguard WorkerThis isn't very useful standalone as shown here for clarity, but you can
9*1c60b9acSAndroid Build Coastguard Workerfreely combine a raw socket vhost with other lws server
10*1c60b9acSAndroid Build Coastguard Workerand client features and other vhosts handling http or ws.
11*1c60b9acSAndroid Build Coastguard Worker
12*1c60b9acSAndroid Build Coastguard WorkerBecuase raw socket events have their own callback reasons, the handlers can
13*1c60b9acSAndroid Build Coastguard Workerbe integrated in a single protocol that also handles http and ws
14*1c60b9acSAndroid Build Coastguard Workerserver and client callbacks without conflict.
15*1c60b9acSAndroid Build Coastguard Worker
16*1c60b9acSAndroid Build Coastguard Worker## build
17*1c60b9acSAndroid Build Coastguard Worker
18*1c60b9acSAndroid Build Coastguard Worker```
19*1c60b9acSAndroid Build Coastguard Worker $ cmake . && make
20*1c60b9acSAndroid Build Coastguard Worker```
21*1c60b9acSAndroid Build Coastguard Worker
22*1c60b9acSAndroid Build Coastguard Worker## usage
23*1c60b9acSAndroid Build Coastguard Worker
24*1c60b9acSAndroid Build Coastguard Worker -s means listen using tls
25*1c60b9acSAndroid Build Coastguard Worker
26*1c60b9acSAndroid Build Coastguard Worker```
27*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-raw-vhost
28*1c60b9acSAndroid Build Coastguard Worker[2018/03/22 14:49:47:9516] USER: LWS minimal raw vhost
29*1c60b9acSAndroid Build Coastguard Worker[2018/03/22 14:49:47:9673] NOTICE: Creating Vhost 'default' port 7681, 1 protocols, IPv6 off
30*1c60b9acSAndroid Build Coastguard Worker[2018/03/22 14:49:52:3789] USER: LWS_CALLBACK_RAW_ADOPT
31*1c60b9acSAndroid Build Coastguard Worker[2018/03/22 14:49:57:4271] USER: LWS_CALLBACK_RAW_CLOSE
32*1c60b9acSAndroid Build Coastguard Worker```
33*1c60b9acSAndroid Build Coastguard Worker
34*1c60b9acSAndroid Build Coastguard Worker```
35*1c60b9acSAndroid Build Coastguard Worker $ nc localhost 7681
36*1c60b9acSAndroid Build Coastguard Workerhello
37*1c60b9acSAndroid Build Coastguard Workerhello
38*1c60b9acSAndroid Build Coastguard Worker```
39*1c60b9acSAndroid Build Coastguard Worker
40*1c60b9acSAndroid Build Coastguard WorkerConnect one or more sessions to the server using netcat... lines you type
41*1c60b9acSAndroid Build Coastguard Workerinto netcat are sent to the server, which echos them to all connected clients.
42*1c60b9acSAndroid Build Coastguard Worker
43