Crates.io | twists |
lib.rs | twists |
version | 0.2.1 |
source | src |
created_at | 2017-02-11 20:04:04.452239 |
updated_at | 2017-03-21 13:11:56.313051 |
description | Example WebSocket Echo Server implemented with twist |
homepage | https://github.com/rustyhorde/twists |
repository | https://github.com/rustyhorde/twists |
max_upload_size | |
id | 8475 |
size | 38,774 |
Example WebSocket echo server implemented with twist based on tokio
The base library twist does not yet implement all of RFC 6455. For example, protocols and exntension passed in the client header are ignored. This will come in time.
Install twists with cargo
cargo install twists
By default twists will listen for incoming connections at 127.0.0.1:11579
twists
You can test with the wscat utility
wscat ws://127.0.0.1:11579 -k 5
The above will send a ping frame every 5 seconds. You should see pongs back. Also text frames will be echoed back.
Command line help
twists --help
Enable trace output
twist -vvv
Change the unsecure address and port
twist -a 10.0.0.0 -p 12345
twists has support for listen for TLS connections. To enable, you need a valid .pfx file. twists uses native-tls, and native-tls requires a valid pfx file with password. By default, twists will run on port 32276. This can be changed via the tlsport command line argument.
export PFX_PWD='the password for the pfx file'
twists -a 10.x.x.x --with-tls -f path/to/pfx
I use fish shell, so
set -lx PFX_PWD 'the password for the pfx file'
twists -a 10.x.x.x --with-tls -f path/to/pfx
Notes: The secure results reflect a connection out over the internet and back. This is due to the hostname requirements of TLS and the need for a valid (read: not self-signed) certificate.