wscli

1.1.0 • Public • Published

wscli

CLI WebSocket client

NOTE: Since this tool is intended to be used in development, it sets rejectUnauthorized option to false. It lets to bypass SSL Certificate checks when connecting to dev servers

Installation

npm install -g wscli

Usage

wscli HOST [COUNT=1] [MSG]
  • HOST: full path to websocket endpoint, e.g. ws://localhost:10000
  • COUNT: expected responses count (optional, defaults to 1).
    • COUNT=-1: wscli will keep listening forever
    • COUNT=0: wscli will connect and send message and ignore any incoming messages might be useful to test that connection is ok and there are no errors sending messages
  • MSG: optional message to send to server on connection

Examples

# Expect 1 message back and quit with exit code 0 
wscli ws://localhost:10000 '{"action":"PING"}'
> {"action":"PONG","req":{"action":"PING"},"res":{"time":1496798038289}}
 
 
# Expect 2 messages back and quit with exit code 0 
wscli ws://localhost:10000 2 '{"action":"PING"}'
> {"action":"PONG","req":{"action":"PING"},"res":{"time":1496798038000}}
> {"action":"PONG","req":{"action":"PING"},"res":{"time":1496798039000}}
 
 
# Listen forever, until interrupted 
wscli ws://localhost:10000 -1
^C
✘-INT
 
 
# Any error, or server closes connection 
14:14 $ wscli ws://localhost:10000 -1
Server has closed connection
✘-1

Timeout

By default wscli does not have any timeout, so if expected message never arrives, process will hang forever.

To avoid this issue, use timeout command like:

timeout 10 wscli ws://localhost:10000 -1

On MacOS you can install timeout as part of coreutils or use simple cross-platform replacement:

npm install -g @nkbt/timeout
timeout 10 wscli ws://localhost:10000 -1

Package Sidebar

Install

npm i wscli

Weekly Downloads

1

Version

1.1.0

License

MIT

Last publish

Collaborators

  • nkbt