LINUX.ORG.RU

websocat: работаем с WebSocket'ами в стиле socat

 ,


0

2

Анонсирую [пред]-релиз своей утилиты.

  • Просто клиент командной строки для 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


Не указали что нужен nightly (как минимум для opt-level = «s»). Да и profile.release в целом какой-то бесполезный. Особенно panic = 'abort'.

PS: советую прогнать через rustfmt. Хотя бы частично.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

panic=abort нужен, чтобы работала кросс-компиляция для Windows и чтобы бинарник был хотя бы немного менее раздутым.

Добавил commit, в котором совместимость с Rust stable 1.25.0.

Через rustfmt и clippy потом прогоню.

vi0 ()
Последнее исправление: vi0 (всего исправлений: 1)

отпиши потом это новостью на Лоре и на опеннете .

pinachet ★★★★★ ()
Ответ на: комментарий от pinachet

Думаешь, достаточно полезно для новости?

vi0 ()
Ответ на: комментарий от theNamelessOne

OK, сделаю 1.0.0-не-альфа, тогда напишу новость.

vi0 ()

Годная утилита. Наконец-то вижу полезную разработку, а не очередную хрень. Ждем релиза и мини-новости.

I-Love-Microsoft ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.