Webソケットサーバーを提供するNode.JSアプリケーションを作成しました( npm ws を使用)。このWebsocketは、接続が確立されるまで待機します。接続がサーバーに到達すると、websocketはジョブを実行します。ジョブが完了すると、メッセージがソケットを介して送信され、ソケットが閉じられます。このソケットは期待どおりに機能します。別のNode.JSスクリプトで既にテスト済みです。
どうすればWebソケットに接続 linuxのみを使用してコマンドラインツールを使用できますか? here のように、すでにcurlを試しました。ただし、localhost:8088/socket /で実行されるWebSocketに適切に接続する方法がわかりません。
編集:私の質問は another 質問の重複の可能性があると特定されました。ただし、リンクされた質問は、curlでそれを行う方法があるかどうかを尋ねるだけです。 bashで動作する解決策があれば嬉しいです。また、リンクされた質問に対する答えは、autobahn.wsを使用したjavascriptファイルです
私のツール websocat はこのために特別に設計されています。
websocat ws://your_server/url
サーバーに接続してデータを交換できます。デフォルトでは、各行はWebSocketテキストメッセージになり、その逆も同様です。
Linuxでは、readlineを使用してより快適にプレイできます。
rlwrap websocat ws://your_server/url.
CLI Websocketクライアントはこれだけではありません。 「ws」および「wscat」プロジェクトもあります。
ここからこれを試してください: WebSocketエンドポイントにアクセスする方法
$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: echo.websocket.org" -H "Origin: http://www.websocket.org" http://echo.websocket.org
彼がここから持っている: http://www.thenerdary.net/post/24889968081/debugging-websockets-with-curl
このサイトのコンテンツを将来のために引用するには:
これらのフラグは言う:
- 出力でヘッダーを返す
- 応答をバッファリングしないでください
- この接続がHTTPから他の何かにアップグレードする必要があるヘッダーを設定します
- この接続がWebSocket接続にアップグレードするために必要なヘッダーを設定します
- ヘッダーを設定してホストを定義します(後のWebSocket標準で必要)
- ヘッダーを設定してリクエストの発信元を定義します(後のWebSocket標準で必要)
WebSocketが機能している場合は、次を返します。
$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: echo.websocket.org" -H "Origin:http://www.websocket.org" http://echo.websocket.org
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
WebSocket-Origin: http://www.websocket.org
WebSocket-Location: ws://echo.websocket.org/
Server: Kaazing Gateway
Date: Mon, 11 Jun 2012 16:34:46 GMT
Access-Control-Allow-Origin: http://www.websocket.org
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Headers: authorization
Access-Control-Allow-Headers: x-websocket-extensions
Access-Control-Allow-Headers: x-websocket-version
Access-Control-Allow-Headers: x-websocket-protocol