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