Github每日精选(第95期):WebSockets 的命令行客户端websocat

websocat WebSockets 的命令行客户端,例如 ws:// netcat(或 curl),具有类似 socat 的高级功能。
Github每日精选(第95期):WebSockets 的命令行客户端websocat_第1张图片

我们在调试WebSockets 的时候,能够轻松的像是在调试http一样。

安装

有多种安装 WebSocat 的选项。

  • 如果您使用的是 Fedora,则可以从Copr安装 WebSocat :sudo dnf copr enable atim/websocat -y && sudo dnf install websocat

  • 如果您使用的是 FreeBSD,则可以使用以下命令安装 WebSocat:pkg install websocat

  • 如果您使用的是 macOS,则可以执行以下操作:brew install websocat

使用

连接到公共回显服务器
$ websocat ws://ws.vi-server.org/mirror
123
123
ABC
ABC
服务和连接
A$ websocat -s 1234
Listening on ws://127.0.0.1:1234/
ABC
123

B$ websocat ws://127.0.0.1:1234/
ABC
123
使用远程调试在 Chromium 中打开一个选项卡。
$ chromium --remote-debugging-port=9222&
$ curl -sg http://127.0.0.1:9222/json/new | grep webSocketDebuggerUrl | cut -d'"' -f4 | head -1
ws://127.0.0.1:9222/devtools/page/A331E56CCB8615EB4FCB720425A82259
$ echo 'Page.navigate {"url":"https://example.com"}' | websocat -n1 --jsonrpc --jsonrpc-omit-jsonrpc ws://127.0.0.1:9222/devtools/page/A331E56CCB8615EB4FCB720425A82259
{"id":2,"result":{"frameId":"A331E56CCB8615EB4FCB720425A82259","loaderId":"EF5AAD19F2F8BB27FAF55F94FFB27DF9"}}
代理 TCP 连接到 WebSocket 连接并返回。
$ websocat --oneshot -b ws-l:127.0.0.1:1234 tcp:127.0.0.1:22&
$ websocat --oneshot -b tcp-l:127.0.0.1:1236 ws://127.0.0.1:1234/&
$ nc 127.0.0.1 1236
SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u3
qwertyu
Protocol mismatch.
在连接的 WebSocket 客户端之间广播所有消息
A$ websocat -t ws-l:127.0.0.1:1234 broadcast:mirror:
B$ websocat ws://127.0.0.1:1234
C$ websocat ws://127.0.0.1:1234

你可能感兴趣的:(Github每日精选,github)