GNU/Linux >> Linux の 問題 >  >> Linux

Linux シェルで websocket の応答を読み取る方法

このために独自のツールを追加したいと思います:websocat.

問題のサービスとのセッションの例:

$ rlwrap  websocat wss://ws-feed.gdax.com

# Now enter this line (without the #) for the required JSON request:
# {"type":"subscribe","channels": [{ "name": "heartbeat", "product_ids": ["BTC-USD"] }]}

{"type":"subscriptions","channels":[{"name":"heartbeat","product_ids":["BTC-USD"]}]}
{"type":"heartbeat","last_trade_id":46274575,"product_id":"BTC-USD","sequence":6312079752,"time":"2018-07-12T22:32:42.655000Z"}
{"type":"heartbeat","last_trade_id":46274575,"product_id":"BTC-USD","sequence":6312079800,"time":"2018-07-12T22:32:43.656000Z"}
{"type":"heartbeat","last_trade_id":46274575,"product_id":"BTC-USD","sequence":6312079834,"time":"2018-07-12T22:32:44.656000Z"}
{"type":"heartbeat","last_trade_id":46274575,"product_id":"BTC-USD","sequence":6312079945,"time":"2018-07-12T22:32:45.656000Z"}
{"type":"heartbeat","last_trade_id":46274575,"product_id":"BTC-USD","sequence":6312079990,"time":"2018-07-12T22:32:46.657000Z"}
{"type":"heartbeat","last_trade_id":46274575,"product_id":"BTC-USD","sequence":6312080042,"time":"2018-07-12T22:32:47.657000Z"}
{"type":"heartbeat","last_trade_id":46274576,"product_id":"BTC-USD","sequence":6312080169,"time":"2018-07-12T22:32:48.657000Z"}

# To stop the feed, type this line: 
{"type":"unsubscribe","channels": [{ "name": "heartbeat", "product_ids": ["BTC-USD"] }]}
{"type":"subscriptions","channels":[]}

Websocket クライアントに加えて、websocat は WebSocket サーバーやその他のモードをサポートし、Websocket を一般に「UNIX」の世界に統合することを目的としています。


まあ、必要なヘッダーを模倣して、curl を使用して何らかの応答を得ることができます:

  • https://gist.github.com/htp/fbce19069187ec1cc486b594104f01d0 または
  • Linux Bash:Websocket 接続をクライアントとして開く方法

また、WebSocket サーバーと通信する方法は他にもあります。

  • https://github.com/websockets/wscat
  • https://github.com/bwasti/webpipe
  • https://github.com/progrium/wssh

node があると仮定します インストールされている場合、wscat を指定します 一発; 簡単直感的 、そしてパワフル .それ以外の場合、@Pavel の回答には、由緒ある Websocket クライアントの代替手段が豊富にあります。

# install
npm install -g wscat

# use
wscat -c "wss://ws-feed.gdax.com"

Linux
  1. シェルでMP3タグを読む方法は?

  2. Linux でデフォルトのシェルを変更する方法

  3. Linux の man ページの読み方は?

  1. Linuxで$PATH変数を設定する方法

  2. Linuxでシェルを変更する方法

  3. Linuxで特殊文字を入力するには?

  1. Linuxで絵文字を入力する方法

  2. Linuxファイルコマンド:Linuxでファイルタイプを決定する方法

  3. シェル スクリプトを使用して Linux にユーザーを追加する方法