A C++ project implementing the wisp protocol, a minimal overhead websocket proxy. It is curently the fastest implementation according to wispmark.
This was made to take full advantage of the low overhead of the protocol by reducing memory usage compared to the author's implementation in python. The repo also has UDP support and better error error handling then the original implementation.
Create a PR if you want you're wisp related product here
For node support look at out port of WispServerC++ wisp-server-cpp and the native wisp-server-node.
More info at MercuryWorkshop/wisp-protocol.
Usage: wispserver [options] <port>
--packet-ratelimit <limit> The ammount of packets that can be sent from a single websocket per minute.
--help Shows this help menu.
Requirements:
- zlib
- pthreads
- uWebSockets
To make with debug symbols make with DEBUG set to TRUE
make DEBUG="-g -ggdb"
Otherwise symbols will be stripped.
The Makefile also needs a obj/ directory.
- V1
- Connect Payload
- TCP
- UDP
- Client Data Payload
- Server Data Payload
- Continue Payload
- Close Payload (only necessary)
- 0x01 Unknown
- 0x02 Voluntary Closure (N/A)
- 0x03 Network Error
- 0x41 Creation Invalid
- 0x42 Host Unreachable
- 0x43 Creation Timeout
- 0x44 Connection Refused
- 0x47 Tcp Timeout
- 0x48 Server Blocked Host
- 0x49 Server Throttling
- 0x81 Client Memory Error (N/A)
- Connect Payload
- V2
- Protocol Extensions
- 0x01 UDP (Supports UDP without proto)
- 0x02 Password Authentication
- Protocol Extensions
- epoxy-tls for testing