Анонсирую [пред]-релиз своей утилиты.
- Просто клиент командной строки для WebSocket'ов в стиле netcat:
$ websocat - wss://echo.websocket.org/ fdsa fdsa sadfasf sadfasf
- Пробрасываем SSH:
server$ websocat ws-l:0.0.0.0:8080 tcp:127.0.0.1:22 client$ ssh -c ProxyCommand='websocat - ws://myserver:8080/mywebsocket' user@myserver
- Интегрируем с Nginx
umask 0000 websocat --unlink ws-l:unix-l:/tmp/wstest sh-c:'bash -i 2>&1'
location /ws { proxy_read_timeout 7d; proxy_send_timeout 7d; proxy_pass http://unix:/tmp/wstest; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }
- Интегрируемся с обычном socat'ом:
$ socat -x - exec:"websocat - ws\://echo.websocket.org/" dsaf > 2018/05/10 21:47:56.609581 length=5 from=0 to=4 64 73 61 66 0a < 2018/05/10 21:47:56.745260 length=5 from=0 to=4 64 73 61 66 0a dsaf 123123123 > 2018/05/10 21:47:58.087129 length=10 from=5 to=14 31 32 33 31 32 33 31 32 33 0a < 2018/05/10 21:47:58.222838 length=10 from=5 to=14 31 32 33 31 32 33 31 32 33 0a 123123123
websocat --ws-c-uri=ws://echo.websocket.org - ws-c:sh-c:'socat - tcp:echo.websocket.org:80'
Предсобранные версии: https://github.com/vi/websocat/releases/tag/v1.0.0-alpha