Socket.IO
認証ペイロード付きでSocket.IOの名前空間に参加し、引数と確認応答付きでイベントを送出して、イベントログを読み取ります。
Socket.IOリクエストは、Socket.IOサーバに接続して名前空間に参加し、接続したままになります。イベントを送出し、サーバのイベントが届くそばから確認できます。 EcholotはWebSocket上のSocket.IO 2、3、4に対応しています。

Alpenglowで試す
Realtime › Support chatは、ドキュメントリポジトリのexamples/serversフォルダにあるlocalhost:3001のローカルSocket.IOサーバに接続します(bun run realtime)。
接続する
- ファイル › 新規Socket.IOリクエストを選ぶか、サイドバーのリクエストの横にある+メニューから新規Socket.IOリクエストを選びます。
- サーバのアドレスを入力します。たとえば
http://localhost:3001です(Alpenglowでは{{realtimeURL}})。http://、https://、ws://、wss://のいずれも使えます。 - アドレスの前にあるSIOバッジのメニューで、サーバのバージョンを選びます:Socket.IO 4、Socket.IO 3、Socket.IO 2。
- 接続(⌘R)を選びます。接続中は接続解除と表示されます。
エディタのタブは次のとおりです:ドキュメント、イベント、ヘッダー、パラメータ、認証、変数、テスト、スクリプト、設定。 ヘッダー、クエリパラメータ、認証は、WebSocketのハンドシェイクとともに送られます。
名前空間、パス、認証
イベントタブの上部では、クライアントの参加方法を設定します:
| フィールド | 内容 |
|---|---|
| 名前空間 | 参加する名前空間。たとえば/support。空にするとアドレスのパス、または/に参加します |
| パス | サーバが待ち受ける場所。空ならデフォルトの/socket.io/です |
| 認証 | 認証ペイロード。{"token": "{{token}}"}のようなJSONオブジェクトです。Socket.IO 3と4では、名前空間に参加するときに送信されます。なしなら空にします |
トークンはシークレット変数に入れ、ペイロードには{{token}}と書くと、値がリクエストファイルに残りません。接続を拒否したサーバはエラーを返し、ログに赤で表示されます。
イベントを送出する
イベントタブの下部で:
messageのような、イベントの名前を入力します。- 引数を、
{{variables}}が使えるJSONで入力します。配列は複数の引数になり、それ以外の値は唯一の引数になります。引数なしなら空にします。 - サーバにイベントを確認応答してもらうには、確認応答にチェックを入れます。
- 送出(⇧⌘↩)を選びます。
たとえば、イベントmessageに引数{"text": "Grüezi!"}を指定すると、1つのオブジェクトが送信され、["order", {"id": "ord_7Hk2Lw"}]は2つの引数を送信します。
+を選ぶと、イベントがリクエストとともに保存されます。保存したイベントには、名前、イベント、引数、確認応答、専用の送出ボタンがあります。 先頭のボックスの実行時に送出は、あなたの操作なしにリクエストが実行されるときに送出するかどうかを決めます。 ランナー、コマンドライン、エージェントは、参加の後に有効なイベントを順に送出し、10秒間待ち受けて閉じます。Support chatには、保存済みのイベントSay helloが1つあります。
イベントログ
レスポンスペインのメッセージタブには、セッションが表示されます。両方向のすべてのイベントが、新しいものが最後に、時刻とサイズ付きで並びます。
- 各行には、イベントの名前と名前空間、確認応答を求めた場合はその確認応答IDが表示されます。確認応答には、応答先のIDが表示されます。
- すべて、送信、受信で方向によって絞り込み、イベントをフィルタでイベントを名前やテキストから探せます。
- その他は、JSONの引数を整形して表示します。
- サーバが確認応答を求めるイベントを送ってきたとき、確認応答で引数なしで応答できます。
- イベントとともに届いたバイナリの添付ファイルは、イベントの下に添付ファイル1、Base64:…のように表示されます。
Socket.IOのパケットが受け付ける添付ファイルは、最大1000個、合計64 MBまでです。
接続が閉じると、セッションはログをレスポンスのボディとして履歴に保存されます。
コマンドラインから
echolot send --socketioは、ターミナルから接続します。入力した各行が、イベントとそのJSON引数になります。保存済みの.sio.tomlリクエストも実行します。echolot sendを参照してください。
