Benjamin Sergeant
eb197edcec
ws --version does not get printed with a log prefix
2020-08-12 18:44:47 -07:00
Benjamin Sergeant
b8265bf7f2
(ws) -q option imply info log level, not warning log level
2020-08-11 15:44:06 -07:00
Benjamin Sergeant
6e47c62c06
(ws) Add a new ws sub-command, push_server. This command runs a server which sends many messages in a loop to a websocket client. We can receive above 200,000 messages per second (cf #235 ).
2020-08-02 12:41:34 -07:00
Benjamin Sergeant
bcae7f326d
(ws) Add a new ws sub-command, echo_client. This command send a message to an echo server, and send back to a server whatever message it does receive. When connecting to a local ws echo_server, on my MacBook Pro 2015 I can send/receive around 30,000 messages per second. (cf #235 )
2020-08-02 12:09:13 -07:00
Benjamin Sergeant
d719c41e31
(ws) ws echo_server. Add a -q option to only enable warning and error log levels. This is useful for bench-marking so that we do not print a lot of things on the console. (cf #235 )
2020-08-02 11:53:21 -07:00
Benjamin Sergeant
029289413c
ws test shell script / add option so tune how large sent file will be
2020-07-29 17:46:37 -07:00
Benjamin Sergeant
4d51098c86
(websocket client) heartbeat is not sent at the requested frequency ( fix #232 )
2020-07-29 11:24:42 -07:00
Benjamin Sergeant
c2b05af022
can compile on macOS against jsoncpp installed from homebrew
2020-07-28 22:00:29 -07:00
Benjamin Sergeant
0388459bd0
(ixwebsocket) add WebSocketProxyServer, from ws. Still need to make the interface better.
2020-07-25 11:26:06 -07:00
Benjamin Sergeant
9a47ec1217
(ixsnake) uses an std::thread to handle redis subscriptions (2 unittest still failing)
2020-07-24 18:12:07 -07:00
Benjamin Sergeant
e34f1c30d6
(ws) port broadcast_server sub-command to the new server API
2020-07-24 14:35:07 -07:00
Benjamin Sergeant
e78019dad6
(ws) port ws transfer to the new server API
2020-07-24 11:52:16 -07:00
Benjamin Sergeant
2798886c0b
(websocket server) add a new simpler API to handle client connections / that API does not trigger a memory leak while the previous one did
2020-07-23 19:29:41 -07:00
Benjamin Sergeant
26a1e63626
snake: stream sql mock + add republished channel option
2020-07-10 15:06:55 -07:00
Benjamin Sergeant
fbd17685a1
(socket+websocket+http+redis+snake servers) expose the remote ip and remote port when a new connection is made (see #222 ) / only ipv4 is handled
2020-07-08 12:10:35 -07:00
Benjamin Sergeant
3a673575dd
clang format
2020-07-08 10:39:46 -07:00
Benjamin Sergeant
cc47fb1c83
(cobra bots) remove bots which is not required now that we can use Python extensions
2020-06-26 16:49:08 -07:00
Benjamin Sergeant
68c97da518
(cmake) new python code is optional and enabled at cmake time with -DUSE_PYTHON=1
2020-06-25 10:05:02 -07:00
Benjamin Sergeant
615f1778c3
new cobra to python bot (still sending to statsd)
...
values + string building can be done in python (we are embedding it)
2020-06-24 23:21:19 -07:00
Benjamin Sergeant
565a08b229
(cobra client and bots) add batch_size subscription option for retrieving multiple messages at once
2020-06-17 17:13:45 -07:00
Benjamin Sergeant
6ed8723d7d
try to fix a double linking error on Windows with linenoise.hpp
2020-06-11 18:01:45 -07:00
Benjamin Sergeant
ac9710d5d6
(ws) add bare bone redis-cli like sub-command, with command line editing powered by libnoise
2020-06-11 17:30:42 -07:00
Benjamin Sergeant
35d76c20dc
add redis cli skeleton ws sub-command
2020-06-11 13:51:10 -07:00
Benjamin Sergeant
7603d1a71b
(redis cobra bots) ws cobra metrics to redis / hostname invalid parsing
2020-06-11 08:33:36 -07:00
Benjamin Sergeant
d0cd4aed5a
(redis cobra bots) xadd with maxlen + fix bug in xadd client implementation and ws cobra metrics to redis command argument parsing
2020-06-11 08:20:03 -07:00
Benjamin Sergeant
c5aadffa08
(redis cobra bots) update the cobra to redis bot to use the bot framework, and change it to report fps metrics into redis streams.
2020-06-10 22:30:55 -07:00
Benjamin Sergeant
531bd624b5
remove spaces in keys + verbose statsd
2020-06-04 14:57:36 -07:00
Benjamin Sergeant
b029f176b6
add new subcommand + skeleton files
2020-06-03 16:29:25 -07:00
Benjamin Sergeant
b008c97c83
(http server) support gzip compression
2020-05-29 16:49:29 -07:00
Benjamin Sergeant
1af39bf0eb
(ixbots) add options to limit how many messages per minute should be processed
2020-05-12 21:40:17 -07:00
Benjamin Sergeant
2e904801a0
(ixbots) add new class to configure a bot to simplify passing options around
2020-05-12 19:08:16 -07:00
Benjamin Sergeant
0772ef7ef5
(cobra bots) add a --heartbeat_timeout option to specify when the bot should terminate because no events are received
2020-05-06 22:01:48 -07:00
Benjamin Sergeant
2786631e3b
clang-format
2020-05-04 17:19:25 -07:00
Benjamin Sergeant
af003fc79b
(ixbots) fix tsan data race error when accessing verbose parameter
2020-05-04 17:15:35 -07:00
Benjamin Sergeant
4f17cd5e74
(cobra bots) do not use a queue to store messages pending processing, let the bot handle queuing
2020-05-04 15:45:11 -07:00
Benjamin Sergeant
646b18bf28
core logger support multiple level + switch ixbots to user corelogger instead of spdlog
2020-04-24 15:17:50 -07:00
Benjamin Sergeant
c70f1d09a8
include all ssl backends inside special per backend macro
2020-04-24 12:47:47 -07:00
Benjamin Sergeant
9d79596629
(ixbots) display sent/receive message, per seconds as accumulated
2020-04-17 09:56:09 -07:00
Benjamin Sergeant
0b6fd989f5
(ws) add a --logfile option to configure all logs to go to a file
2020-04-17 09:35:47 -07:00
Benjamin Sergeant
a2abe861d3
(cobra bots) add a utility class to factor out the common bots features (heartbeat) and move all bots to used it + convert cobra_subscribe to be a bot and add a unittest for it
2020-04-16 21:58:10 -07:00
Benjamin Sergeant
ccfd196863
clang-format
2020-04-16 11:58:06 -07:00
Benjamin Sergeant
9b8cfa0a37
(websocket) add a positive number to the heartbeat message sent, incremented each time the heartbeat is sent
2020-04-15 18:33:36 -07:00
Benjamin Sergeant
64754df66c
(ixcobra) change cobra event callback to use a struct instead of several objects, which is more flexible/extensible
2020-04-15 17:38:39 -07:00
Benjamin Sergeant
386ef3ab04
(ixcobra) make CobraConnection_EventType an enum class (CobraEventType)
2020-04-15 16:59:17 -07:00
Benjamin Sergeant
bea582c208
cobra subscriber in fluentd mode insert a created_at timestamp entry
2020-04-14 15:30:30 -07:00
Benjamin Sergeant
c57cf413fb
(ws) add a --runtime option to ws cobra_subscribe to optionally limit how much time it will run
2020-04-13 19:03:53 -07:00
Benjamin Sergeant
1d3db5f75b
(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
Benjamin Sergeant
e465f7af52
(cobra to statsd bot) bot init was missing + capture socket error
2020-03-29 22:03:27 -07:00
Benjamin Sergeant
f8bf1fe7cd
(cobra to statsd bot) add ability to extract a numerical value and send a gauge event to statsd
2020-03-29 19:32:43 -07:00
Benjamin Sergeant
cfa5718e40
(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
Benjamin Sergeant
d2db7310ff
(ixcobra) add explicit event types for handshake, authentication and subscription failure, and handle those by exiting in ws_cobra_subcribe and friends
2020-03-26 18:54:28 -07:00
Benjamin Sergeant
dffa759f71
move IXBench code under ixwebsocker folder
2020-03-24 20:53:25 -07:00
Benjamin Sergeant
61e789d6a4
formatting
2020-03-24 20:37:55 -07:00
Benjamin Sergeant
37cb2cc266
(ws connect) display statistics about how much time it takes to stop the connection / cf #168
2020-03-24 20:29:09 -07:00
Benjamin Sergeant
e0733d205c
fix linux linker error
2020-03-22 21:59:30 -07:00
Benjamin Sergeant
a0ffb2ba53
cobra to statsd bot ported to windows + add unittest
2020-03-22 19:37:04 -07:00
Benjamin Sergeant
5ad54a8904
pre-commit / fix simple file trailing things
2020-03-21 19:31:38 -07:00
Benjamin Sergeant
5ce846f48b
indent files
2020-03-20 17:00:18 -07:00
Benjamin Sergeant
829751b7af
(cobra) CobraMetricsPublisher can be configure with an ix::CobraConfig + more unittest use SSL in server + client
2020-03-20 12:22:00 -07:00
Benjamin Sergeant
d6f534de06
(ws) ws echo_server gains a new option (-p) to disable responding to pings with pongs
2020-03-18 00:01:57 -07:00
Benjamin Sergeant
8ec515f292
(ws) ws connect gains a new option to set the interval at which to send pings
2020-03-17 23:54:32 -07:00
Benjamin Sergeant
e8f81776f9
(cobra to sentry bot + docker) default docker file uses mbedtls + ws cobra_to_sentry pass tls options to sentryClient.
2020-03-16 10:05:21 -07:00
Benjamin Sergeant
0bb5462504
Feature/ci windows ( #163 )
...
* win only
* disable ixcrypto mbedtls search on windows
* ws cmakefile do not search for openssl
* ci builds files on top of cmaking
* ci builds files on top of cmaking / syntax tweak
* use gha-setup-vsdevenv syntax
* build fix and hacks
* try to run unittest on win
* try to run unittest on win (syntax error)
* unittest wip
* wip
* wip again
* wip again (working-directory)
* cleanup
* dumb compile error
2020-03-15 18:38:09 -07:00
Benjamin Sergeant
44f599747e
(cobra client) ws cobra subscribe resubscribe at latest position after being disconnected
2020-03-13 17:30:31 -07:00
Benjamin Sergeant
9801ebdb36
(cobra client) can subscribe with a position
2020-03-13 16:06:13 -07:00
Benjamin Sergeant
332ffb0603
(cobra client) pass the message position to the subscription data callback
2020-03-13 12:49:37 -07:00
Benjamin Sergeant
90df3d1805
(openssl tls backend) Fix a hand in OpenSSL when using TLS v1.3 ... by disabling TLS v1.3
2020-03-12 16:27:25 -07:00
Benjamin Sergeant
d4e1f71e3c
(cobra2sentry bot) take a sentry client as input instead of a dsn
2020-03-12 12:30:58 -07:00
Benjamin Sergeant
adf6aa1d6c
(cobra2sentry bot) remove the jobs option passed to ws, and only use one sentry sender
2020-03-12 12:24:25 -07:00
Benjamin Sergeant
cb1f9f5a44
clang formatting
2020-03-12 12:15:56 -07:00
Benjamin Sergeant
83ae105edb
minor refactoring to delete files which are not needed
2020-03-12 12:13:31 -07:00
Benjamin Sergeant
cb1ec7dc96
add unittest for cobra to sentry bots
2020-03-12 09:07:01 -07:00
Benjamin Sergeant
3df7c942d7
move sentry and statsd cobra ws commands into a new ixbots folder
2020-03-11 15:55:56 -07:00
Benjamin Sergeant
6a4d69afc5
(cobra) IXCobraConfig struct has tlsOptions and per message deflate options
2020-03-11 12:40:32 -07:00
Benjamin Sergeant
0a11132b07
(cobra) add IXCobraConfig struct to pass cobra config around
2020-03-11 10:48:41 -07:00
Benjamin Sergeant
b1f30bb40f
(ws cobra_subscribe) add a --fluentd option to wrap a message in an enveloppe so that fluentd can recognize it
2020-03-09 15:25:43 -07:00
Benjamin Sergeant
140a21c8b3
(ws_connect) display sent/received bytes statistics on exit
2020-02-26 11:23:36 -08:00
Benjamin Sergeant
4c66a7561e
(WebSocketServer) add option to disable deflate compression, exposed with the -x option to ws echo_server
2020-02-18 21:38:28 -08:00
Benjamin Sergeant
111475e65c
(ws cobra to statsd and sentry sender) exit if no messages are received for one minute, which is a sign that something goes wrong on the server side. That should be changed to be configurable in the future
2020-02-18 12:43:07 -08:00
Benjamin Sergeant
45061b0b14
(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
Benjamin Sergeant
5f6c54bb90
(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
Benjamin Sergeant
f3760318b7
(cobra to sentry) remove noisy logging
2020-01-31 16:07:36 -08:00
Benjamin Sergeant
aa12098cb5
add -6 option to ws echo_server / cf #148
2020-01-26 16:44:44 -08:00
Benjamin Sergeant
fad9f89846
(ws) add a dnslookup sub-command, to get the ip address of a remote host
2020-01-26 16:21:56 -08:00
Benjamin Sergeant
b96b3b099f
test broadcast server
2020-01-12 21:32:26 -08:00
Benjamin Sergeant
9651f3823d
(apple ssl) model write method after the OpenSSL one for consistency
...
More test code for #140 .
2020-01-10 18:32:34 -08:00
Benjamin Sergeant
c8bf2a0d82
formatting
2020-01-09 13:45:31 -08:00
Benjamin Sergeant
4d96804b22
ws send / detect disconnection earlier
2020-01-09 13:30:08 -08:00
Benjamin Sergeant
28952cb0b0
ws send / check that we are connected when waiting for the send buffer to be flushed, and if so, abort
2020-01-09 12:16:12 -08:00
Benjamin Sergeant
1320e4ddaf
Windows ws build fix
2020-01-07 17:37:38 -08:00
Benjamin Sergeant
a5bc39be55
(websocket client) better error propagation when errors are detected while sending data + (ws send) detect failures to send big files, terminate in those cases and report error (troubleshooting #140 )
2020-01-06 14:34:43 -08:00
Benjamin Sergeant
f56098dd4c
(ws send) add option (-x) to disable per message deflate compression
2020-01-04 15:08:36 -08:00
Benjamin Sergeant
e0187b2d8e
fix typo in ws embedded help
2020-01-04 14:37:53 -08:00
Benjamin Sergeant
31682f5f2d
(ws send + receive) handle all message types (ping + pong + fragment) / investigate #140
2020-01-04 13:45:07 -08:00
Benjamin Sergeant
d60777b9cc
clang-format
2019-12-30 08:46:18 -08:00
Benjamin Sergeant
8b5e42fe84
(ws cobra to sentry/statsd) fix for handling null events properly for empty queues + use queue to send data to statsd
2019-12-28 17:28:05 -08:00
Benjamin Sergeant
d89d152ad7
(ws cobra to sentry) handle null events for empty queues
2019-12-28 10:16:18 -08:00
Benjamin Sergeant
47a3736b24
(ws cobra to sentry) game is picked in a fair manner, so that all games get the same share of sent events
2019-12-27 19:10:15 -08:00
Benjamin Sergeant
1cd7cf340a
(ws cobra to sentry) refactor queue related code into a class
2019-12-27 18:24:45 -08:00
Benjamin Sergeant
3a25a05d9c
(ws cobra to sentry) bound the queue size used to hold up cobra messages before they are sent to sentry. Default queue size is a 100 messages. Without such limit the program runs out of memory when a subscriber receive a lot of messages that cannot make it to sentry
2019-12-25 22:15:57 -08:00