websocat -- клиент, сервер и прокси для WebSocket-ов

good-penguin.png

Вышла версия 1.0.0 программы для работы с WebSocket-ами из командной строки «websocat». Девиз программы:»netcat, curl и websocat для вебсокетов».

Функции:

  • Простой клиент и сервер для WebSocket.
  • Проксирование подключений, например, между TCP и ws://.
  • Выполнение внешних программ в качестве подключения.
  • Подключение и прослушивание AF_UNIX (в т.ч abstract) сокетов. Использование SOCK_SEQPACKET режима.
  • Преобразование строк в сообщения и обратно (включается автоматически, если не --binary).
  • Использование одного подключения несколькими клиентами.

Примеры:

  • Просто клиент и сервер:
    $ websocat wss://echo.websocket.org
    qwer
    qwer
    ^C
    
    $ websocat -s 1234
    Listening on ws://127.0.0.1:1234/
    ^C
    
    
  • Проброс SSH через вебсокет:
    server$ websocat --binary ws-l:0.0.0.0:8080 tcp:127.0.0.1:22
    client$ ssh -c ProxyCommand='websocat --binary - ws://myserver:8080/' user@myserver
    
    
  • Интеграция с nginX через UNIX-сокет:
    umask 0000
    websocat --exit-on-eof --text --unlink ws-upgrade:listen-unix:/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";
        }
    
    

    Таким способом можно заставить websocat обслуживать безопасные (wss://) вебсокеты.

  • Аналог echo.websocket.org:
    websocat -v -t ws-l:[::]:8080 mirror:
    

    Похожее, но ответы идут всем подключенным клиентам:

    websocat -v -t ws-l:[::]:8080 broadcast:mirror:
    

---

Лицензия: MIT.

Есть предсобранные версии для Linux (i386, amd64, arm; обычные и статические), Mac и Windows, а также пакеты deb.

>>> Подробности

©  Linux.org.ru