IXWebSocket/ws
2020-03-30 16:08:47 -07:00
..
.gitignore ws / log subcommand name 2019-03-18 17:54:06 -07:00
broadcast-server.js cleanup 2019-02-22 20:51:22 -08:00
broadcast-server.py cleanup 2019-02-22 20:51:22 -08:00
CMakeLists.txt move IXBench code under ixwebsocker folder 2020-03-24 20:53:25 -07:00
cobraMetricsSample.json add example websocket C++ server snake which supports basic cobra ops (publish and subscribe without stream sql 2019-04-22 17:33:45 -07:00
docker_build.sh ws broacast_server / can set serving hostname 2019-03-10 16:36:44 -07:00
generate_certs.sh pre-commit / fix simple file trailing things 2020-03-21 19:31:38 -07:00
package-lock.json ws / log subcommand name 2019-03-18 17:54:06 -07:00
README.md update doc 2019-03-24 21:48:14 -07:00
test_ws_redis.sh Bump sleep time in test shell script 2019-03-29 09:36:56 -07:00
test_ws.sh pre-commit / fix simple file trailing things 2020-03-21 19:31:38 -07:00
ws_autobahn.cpp (ws client) all commands use spdlog instead of std::cerr or std::cout for logging 2019-12-24 21:55:34 -08:00
ws_broadcast_server.cpp ws send / detect disconnection earlier 2020-01-09 13:30:08 -08:00
ws_chat.cpp formatting 2020-01-09 13:45:31 -08:00
ws_cobra_metrics_publish.cpp indent files 2020-03-20 17:00:18 -07:00
ws_cobra_metrics_to_redis.cpp (cobra client) can subscribe with a position 2020-03-13 16:06:13 -07:00
ws_cobra_publish.cpp (cobra) IXCobraConfig struct has tlsOptions and per message deflate options 2020-03-11 12:40:32 -07:00
ws_cobra_subscribe.cpp (ws cobra subscriber) use a Json::StreamWriter to write to std::cout, and save one std::string allocation for each message printed 2020-03-29 15:24:46 -07:00
ws_connect.cpp formatting 2020-03-24 20:37:55 -07:00
ws_dns_lookup.cpp (WebSocketServer) add option to disable deflate compression, exposed with the -x option to ws echo_server 2020-02-18 21:38:28 -08:00
ws_echo_server.cpp (ws) ws echo_server gains a new option (-p) to disable responding to pings with pongs 2020-03-18 00:01:57 -07:00
ws_http_client.cpp (ws client) all commands use spdlog instead of std::cerr or std::cout for logging 2019-12-24 21:55:34 -08:00
ws_httpd.cpp (ws client) all commands use spdlog instead of std::cerr or std::cout for logging 2019-12-24 21:55:34 -08:00
ws_ping_pong.cpp clang-format 2019-12-30 08:46:18 -08:00
ws_proxy_server.cpp clang-format 2019-12-30 08:46:18 -08:00
ws_receive.cpp (ws send + receive) handle all message types (ping + pong + fragment) / investigate #140 2020-01-04 13:45:07 -08:00
ws_redis_publish.cpp (ws client) all commands use spdlog instead of std::cerr or std::cout for logging 2019-12-24 21:55:34 -08:00
ws_redis_server.cpp (ws client) all commands use spdlog instead of std::cerr or std::cout for logging 2019-12-24 21:55:34 -08:00
ws_redis_subscribe.cpp (ws client) all commands use spdlog instead of std::cerr or std::cout for logging 2019-12-24 21:55:34 -08:00
ws_send.cpp formatting 2020-03-24 20:37:55 -07:00
ws_sentry_minidump_upload.cpp (http client + sentry minidump upload) Multipart stream closing boundary is invalid + mark some options as mandatory in the command line toolsj 2020-02-13 12:25:18 -08:00
ws_snake.cpp (snake) add an option to disable answering pongs as response to pings, to test cobra client behavior with hanged connections 2020-01-31 16:55:54 -08:00
ws_transfer.cpp test broadcast server 2020-01-12 21:32:26 -08:00
ws.cpp (cobra to statsd bot) add ability to extract a numerical value and send a timer event to statsd, with the --timer option 2020-03-30 16:08:47 -07:00
ws.h (ws) ws echo_server gains a new option (-p) to disable responding to pings with pongs 2020-03-18 00:01:57 -07:00

General

ws is a command line tool that should exercise most of the IXWebSocket code, and provide example code.

$ ws --help
ws is a websocket tool
Usage: ws [OPTIONS] SUBCOMMAND

Options:
  -h,--help                   Print this help message and exit

Subcommands:
  send                        Send a file
  receive                     Receive a file
  transfer                    Broadcasting server
  connect                     Connect to a remote server
  chat                        Group chat
  echo_server                 Echo server
  broadcast_server            Broadcasting server
  ping                        Ping pong
  curl                        HTTP Client
  redis_publish               Redis publisher
  redis_subscribe             Redis subscriber

file transfer

# Start transfer server, which is just a broadcast server at this point
ws transfer # running on port 8080.

# Start receiver first
ws receive ws://localhost:8080

# Then send a file. File will be received and written to disk by the receiver process
ws send ws://localhost:8080 /file/to/path

curl

$ ws curl --help
HTTP Client
Usage: ws curl [OPTIONS] url

Positionals:
  url TEXT REQUIRED           Connection url

Options:
  -h,--help                   Print this help message and exit
  -d TEXT                     Form data
  -F TEXT                     Form data
  -H TEXT                     Header
  --output TEXT               Output file
  -I                          Send a HEAD request
  -L                          Follow redirects
  --max-redirects INT         Max Redirects
  -v                          Verbose
  -O                          Save output to disk
  --compress                  Enable gzip compression
  --connect-timeout INT       Connection timeout
  --transfer-timeout INT      Transfer timeout