
不論是我們接案或者在公司進行專案開發時, 如果有機會接觸到Websocket相關的介接整合專案時, 首先我們會拿到一份對方提供的API文件, 這時候我們不可能一開始就一頭熱的栽入開發吧! 勢必要先測試一下API有沒有問題, 並且提出來與對方溝通討論, 確認沒問題之後再進行開發, 那這時候有一把趁手的工具就顯得非常重要了, 也是我們今天要跟大家介紹的一款websocket命令列工具, 就讓我們來看看如何使用吧!
簡介
websocat
是一款功能強大、輕量且好用的命令列 WebSocket 客戶端,像是 curl
一樣方便,但專門用來跟 WebSocket 伺服器溝通。它支援文字、二進位、串流等多種模式,適合用來測試、串流音訊、影像、或其他即時資料。
1️⃣ 安裝 websocat 🛠️
MacOS / Linux
- MacOS (Homebrew):
bash
複製編輯
brew install websocat
- Ubuntu/Debian (手動下載執行檔):
bash
複製編輯
wget <https://github.com/vi/websocat/releases/latest/download/websocat.x86_64-unknown-linux-gnu> -O websocat
chmod +x websocat
sudo mv websocat /usr/local/bin/
Windows
- 下載 Windows 版本執行檔:
websocat Releases - 放到系統 PATH 下,或使用完整路徑執行。
2️⃣ 基本連線測試 🔗
連到公開的 echo WebSocket 伺服器,測試傳送與回傳:websocat ws://echo.websocket.org
3️⃣ 傳送二進位檔案(音檔串流)🎵
把檔案以二進位傳送給 WebSocket:
bash
複製編輯
websocat -b ws://your.websocket.server < audio.wav
b
:二進位模式 (binary)< audio.wav
:將音訊檔內容讀入
4️⃣ 傳送文字訊息(例如 JSON)📝
一次性將整個文字檔案送出:
bash
複製編輯
websocat ws://your.websocket.server < message.json
5️⃣ 互動模式(手動輸入)⌨️
開啟連線,手動輸入訊息並即時看到回覆:
bash
複製編輯
websocat ws://your.websocket.server
6️⃣ 複雜應用:雙向串流與輸出 📥📤
把檔案內容送到 WebSocket,同時把伺服器回應輸出到檔案:
bash
複製編輯
cat audio.wav | websocat -b ws://your.websocket.server > response.log
7️⃣ 常用參數簡介 ⚙️
參數功能說明
-b
以二進位(binary)模式傳輸
-t
以文字(text)模式傳輸(預設)
-s
發送一次訊息後關閉連線
-E
一行一訊息模式,方便多條訊息處理
-v
顯示詳細除錯訊息
8️⃣ 進階:分段串流音訊檔 📦
把音訊檔切小塊逐段傳送,模擬即時串流:
bash
複製編輯
split -b 1024 audio.wav chunk_
for f in chunk_*; do
cat "$f" | websocat -b ws://your.websocket.server
done
🎉 結語
工欲善其事,必先利其器, 在我們執行一項重要任務之前, 有一把好的武器非常重要, 它可以讓我們的任務更加的順利進行, 也是我們在做任何事情需要思考的, 這邊我們就提供websocket開發需要的武器, 希望能帶給正在面臨開發任務的夥伴一點幫助, 也讓我們一起學習成長。
關於Websocket的系列文章也歡迎您閱讀: