IXWebSocket/ws
Benjamin Sergeant b5b0de2083 +add utf-8 validation code, not hooked up properly yet
+ws autobahn / Add code to test websocket client compliance with the autobahn test-suite
+Ping received with a payload too large (> 125 bytes) trigger a connection closure
+cobra / add tracking about published messages
+cobra / publish returns a message id, that can be used when
+cobra / new message type in the message received handler when publish/ok is received (can be used to implement an ack system).
2019-08-31 16:47:10 -07:00
..
ixcobra +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -07:00
ixcore/utils (clang format) fix indent and make (rarely) accessor/setters in class on a single line 2019-05-31 00:53:14 -07:00
ixcrypto cobra to sentry / more error handling 2019-06-05 19:37:51 -07:00
snake WebSocket callback only take one object, a const ix::WebSocketMessagePtr& msg 2019-06-09 11:33:17 -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 +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -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
IXRedisClient.cpp 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
IXRedisClient.h clang format, based on cpprest 2019-05-30 08:46:50 -07:00
IXSentryClient.cpp cobra_to_sentry / backtraces are reversed and line number is not extracted correctly 2019-06-13 10:18:40 -07:00
IXSentryClient.h add an option to easily disable per message deflate compression 2019-06-06 13:48:53 -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 try to run ws test on linux + macOS on travis 2019-05-16 13:57:33 -07:00
ws_autobahn.cpp +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -07:00
ws_broadcast_server.cpp - WebSocket::send() sends message in TEXT mode by default 2019-06-09 11:56:47 -07:00
ws_chat.cpp WebSocket callback only take one object, a const ix::WebSocketMessagePtr& msg 2019-06-09 11:33:17 -07:00
ws_cobra_publish.cpp +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -07:00
ws_cobra_subscribe.cpp +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -07:00
ws_cobra_to_sentry.cpp +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -07:00
ws_cobra_to_statsd.cpp +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -07:00
ws_connect.cpp New option to cap the max wait between reconnection attempts. Still default to 10s. (setMaxWaitBetweenReconnectionRetries) (#108) 2019-08-30 12:46:35 -07:00
ws_echo_server.cpp - WebSocket::send() sends message in TEXT mode by default 2019-06-09 11:56:47 -07:00
ws_http_client.cpp ws connect has a new option to send HTTP headers + use WebSocketHttpHeaders instead of unordered_map<string, string> 2019-08-26 10:19:09 -07:00
ws_httpd.cpp Feature/httpd (#94) 2019-06-23 14:54:21 -07:00
ws_ping_pong.cpp WebSocket callback only take one object, a const ix::WebSocketMessagePtr& msg 2019-06-09 11:33:17 -07:00
ws_receive.cpp WebSocket callback only take one object, a const ix::WebSocketMessagePtr& msg 2019-06-09 11:33:17 -07:00
ws_redis_publish.cpp remove un-needed _backgroundThreadRunning variable 2019-05-01 11:09:25 -07:00
ws_redis_subscribe.cpp (redis_subscribe) in verbose mode, received message gets printed with a 'received: ' header 2019-03-29 09:35:19 -07:00
ws_send.cpp WebSocket callback only take one object, a const ix::WebSocketMessagePtr& msg 2019-06-09 11:33:17 -07:00
ws_snake.cpp Feature/ws windows (#86) 2019-06-02 20:46:20 -07:00
ws_transfer.cpp - WebSocket::send() sends message in TEXT mode by default 2019-06-09 11:56:47 -07:00
ws.cpp +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -07:00
ws.h +add utf-8 validation code, not hooked up properly yet 2019-08-31 16:47:10 -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