Benjamin Sergeant
e023dd9c36
ws has a --version option
2019-09-30 17:31:33 -07:00
Benjamin Sergeant
2229159bd2
ws curl + http client tls option handling + ca cert processing for mbedtls
2019-09-29 21:13:11 -07:00
Benjamin Sergeant
4de7cb191b
most ws command take tls options, no-op for now (contributed by Matt DeBoer)
2019-09-29 18:29:51 -07:00
Benjamin Sergeant
816c53e3a3
ws transfer + send + receive / improved logging (contributed by Matt DeBoer)
2019-09-29 17:21:52 -07:00
Benjamin Sergeant
0499a80c55
Export port 8008 for Docker + test_ws.sh is /bin/sh compatible
2019-09-26 14:36:14 -07:00
Benjamin Sergeant
f18980d010
http server unittest + refactoring
2019-09-26 09:45:59 -07:00
Benjamin Sergeant
2fb0ebb05b
http server: in redirect mode, POST request are given a 200 status code and an empty response
2019-09-26 09:27:27 -07:00
Benjamin Sergeant
7495c9ebb8
Http server: add options to ws https to redirect all requests to a given url.
2019-09-26 09:10:30 -07:00
Benjamin Sergeant
b26d463bad
Stop having ws send subcommand send a binary message in text mode, which would cause error in make ws_test
shell script test
2019-09-25 15:39:43 -07:00
Benjamin Sergeant
fbf80f4ab1
Add simple Redis Server which is only capable of doing publish / subscribe. New ws redis_server sub-command to use it. The server is used in the unittest, so that we can run on CI in environment where redis isn not available like github actions env.
2019-09-23 21:04:01 -07:00
Benjamin Sergeant
8f8385f8f8
fix linux compilation error, by ordering dependant libraries properly
2019-09-23 12:32:04 -07:00
Benjamin Sergeant
122118196b
move snake code to its own subfolder like ixcobra, ixcrypto, etc...
2019-09-23 11:46:16 -07:00
Benjamin Sergeant
6f2fe49a7b
reformat everything with clang-format
2019-09-23 10:25:23 -07:00
Benjamin Sergeant
1769199d32
Fix crash in the Linux unittest in the HTTP client code, in Socket::readBytes. Cobra Metrics Publisher code returns the message id of the message that got published, to be used to validated that it got sent properly when receiving an ack.
2019-09-21 09:23:58 -07:00
Benjamin Sergeant
8821183aea
missing file in ws tool
2019-09-19 12:51:34 -07:00
Benjamin Sergeant
a7cf151639
In DNS lookup code, make sure the weak pointer we use lives through the expected scope (if branch)
2019-09-19 12:51:11 -07:00
Benjamin Sergeant
57086e28d8
fix unittest warnings + remove trailing spaces
2019-09-12 11:43:52 -07:00
Benjamin Sergeant
0fde169aa4
restructure project
2019-09-10 12:19:22 -07:00
Benjamin Sergeant
ae3856c10f
Fix Windows CI with appveyor ( #110 )
...
Fix windows CI with appveyor + minor tweaks.
2019-09-07 14:07:00 -07:00
Benjamin Sergeant
e40dda7549
add cobra metrics publisher + server unittest
2019-09-05 21:57:05 -07:00
Benjamin Sergeant
07b7e37a92
snake unsubscription fixes
2019-09-05 20:47:15 -07:00
Benjamin Sergeant
eb7888347a
Fix compiler warning
2019-09-05 20:29:14 -07:00
Benjamin Sergeant
d8664f4988
ws snake (cobra simple server) add basic support for unsubscription + subscribe send the proper subscription data + redis client subscription can be cancelled
2019-09-05 20:28:34 -07:00
Benjamin Sergeant
5e94791b13
IXCobraConnection / pdu handlers can crash if they receive json data which is not an object
2019-09-05 20:24:42 -07:00
Benjamin Sergeant
3e3f7171fc
cobra publish fix
2019-09-05 14:31:28 -07:00
Benjamin Sergeant
f25b2af6eb
ws autobahn / use condition variables for stopping test case + add more logging on errors
2019-09-04 12:21:54 -07:00
Benjamin Sergeant
508d372df1
ws autobahn / report progress with spdlog::info to get timing info
2019-09-04 10:16:32 -07:00
Benjamin Sergeant
12c3275c36
truncate module
2019-09-03 20:14:35 -07:00
Benjamin Sergeant
2408617ed9
doc
2019-09-01 11:28:27 -07:00
Benjamin Sergeant
cc10b7f998
compute test case count properly
2019-09-01 11:17:28 -07:00
Benjamin Sergeant
3c97d5f668
refactoring
2019-09-01 11:10:27 -07:00
Benjamin Sergeant
0accf24320
condition variable instead of busy looping
2019-09-01 10:50:16 -07:00
Benjamin Sergeant
8ec2ef345c
quiet mode
2019-09-01 10:45:51 -07:00
Benjamin Sergeant
10dbe2d44d
+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
Benjamin Sergeant
06bc795133
New option to cap the max wait between reconnection attempts. Still default to 10s. (setMaxWaitBetweenReconnectionRetries) ( #108 )
2019-08-30 12:46:35 -07:00
Benjamin Sergeant
95d633e71e
tentative gcc build fix
2019-08-26 14:29:16 -07:00
Benjamin Sergeant
45d7bb34d7
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
Benjamin Sergeant
2e32319236
CobraConnection: sets a unique id field for all messages sent to [cobra]( https://github.com/machinezone/cobra ).
...
CobraConnection: sets a counter as a field for each event published.
2019-08-26 09:51:37 -07:00
Benjamin Sergeant
193da820b2
Windows: use select instead of WSAPoll, through a poll wrapper
2019-08-22 10:34:17 -07:00
Benjamin Sergeant
dd0d7c268f
CobraMetricThreadedPublisher _enable flag is an atomic, and CobraMetricsPublisher is enabled by default
2019-08-14 19:54:30 -07:00
Benjamin Sergeant
f8fef833b8
new options for cobra commands
...
- ws cobra_subscribe has a new -q (quiet) option
- ws cobra_subscribe knows to and display msg stats (count and # of messages received per second)
- ws cobra_subscribe, cobra_to_statsd and cobra_to_sentry commands have a new option, --filter to restrict the events they want to receive
2019-08-01 15:22:24 -07:00
Benjamin Sergeant
fc4068f2e5
ws connect command has a new option to send in binary mode (still default to text)
2019-07-25 15:48:45 -07:00
Benjamin Sergeant
c300866dcc
add better line editing capability to ws connect, thanks to linenoise-cpp
2019-07-25 11:54:50 -07:00
Benjamin Sergeant
691502d7ad
Feature/httpd ( #94 )
...
* Stub code for http server
* can send a response, cannot process body yet
* write headers to the response
* remove commented code
* add simple test + set default http handler
* tweak CI + unittest
* add missing file
* rewrite http::trim in a simple way
* doc
2019-06-23 14:54:21 -07:00
Benjamin Sergeant
2d02ae0f0c
cobra_to_sentry / backtraces are reversed and line number is not extracted correctly
2019-06-13 10:18:40 -07:00
Benjamin Sergeant
55c65b08bf
- WebSocket::send() sends message in TEXT mode by default
...
- WebSocketMessage sets a new binary field, which tells whether the received incoming message is binary or text
2019-06-09 11:56:47 -07:00
Benjamin Sergeant
de0bf5ebcd
WebSocket callback only take one object, a const ix::WebSocketMessagePtr& msg
2019-06-09 11:33:17 -07:00
Benjamin Sergeant
15369e1ae9
...
2019-06-09 10:22:27 -07:00
Benjamin Sergeant
5cb72dce4c
ws echo_server has a -g option to print a greeting message on connect
2019-06-08 09:16:33 -07:00
Benjamin Sergeant
cbf21b4008
add an option to easily disable per message deflate compression
2019-06-06 13:48:53 -07:00
Benjamin Sergeant
257c901255
cobra to sentry / more error handling
2019-06-05 19:37:51 -07:00
Benjamin Sergeant
15d8c663da
cobra to sentry fixes
2019-06-05 18:47:48 -07:00
Benjamin Sergeant
d50125c62d
Feature/http async ( #90 )
...
* unittest working / uses shared_ptr for a bunch of things 🗿
* fix command line tools
* fix ws + add doc
* add more logging
2019-06-05 17:04:24 -07:00
Benjamin Sergeant
9262880369
Fix compile error with JSON uint64_t 🚯
2019-06-04 13:45:29 -07:00
Benjamin Sergeant
2b111e8352
HttpResponse is a struct, not a tuple 🉐
2019-06-03 22:12:52 -07:00
Benjamin Sergeant
fa84ade6be
Feature/ws windows ( #86 )
...
* try to build ws on window on travis 📮
* cmake invocation fixed on windows 🐝
* Can use mbedtls to calculate hmac + no openssl config option
* build only windows on travis 🕢
* run msbuild 💷
* proper command to build 🕛
* some build fixes
* change weird sizeof call 🐙
* warning and missing includes fixes 💮
* ifdef out statsd code on windows 🐍
* logic invertion in ifdef 👄
* bring back makefile 📜
* command line tool is built with mbedtls 🏥
2019-06-02 20:46:20 -07:00
Benjamin Sergeant
977e8794ec
(clang format) fix indent and make (rarely) accessor/setters in class on a single line
2019-05-31 00:53:14 -07:00
Benjamin Sergeant
c68848eecc
fix cobra to sentry + change ws docker file to use alpine (much smaller footprint)
2019-05-31 00:43:22 -07:00
Benjamin Sergeant
c6dfb14953
clang format, based on cpprest
2019-05-30 08:46:50 -07:00
Benjamin Sergeant
11774e6825
try to run ws test on linux + macOS on travis
2019-05-16 13:57:33 -07:00
Dimon4eg
4c4f99606e
use C++11 enums ( #67 )
...
* use C++11 enums
* small rename
* update tests
* update tests
* update ws
* update ws
* update README.md
2019-05-11 14:22:06 -07:00
Benjamin Sergeant
d64d50c978
remove irrelevant comment
2019-05-11 12:24:11 -07:00
Dimon4eg
a64b7b0c4a
minor improvements ( #66 )
...
* minor improvements
* fix build
* improve tests code
2019-05-11 12:20:58 -07:00
Benjamin Sergeant
ff81f5b496
add env var to display the ws command typed in
2019-05-10 16:27:23 -07:00
Benjamin Sergeant
c89f73006e
cout -> spdlog
2019-05-10 12:33:34 -07:00
Benjamin Sergeant
c7f0bf3d64
use spdlog for logging in ws + unittest + remove un-needed mutex
2019-05-09 15:30:44 -07:00
Benjamin Sergeant
234ce4c173
cout -> cerr
2019-05-09 15:06:42 -07:00
Benjamin Sergeant
a7f42f35db
warning police
2019-05-09 09:25:56 -07:00
Benjamin Sergeant
28c3f2ea26
IXCobraMetricsThreadedPublisher.cpp uses a lambda to log instead of std::cerr
2019-05-08 18:53:32 -07:00
Benjamin Sergeant
8dc132dbd3
change default ports for the ws command line tool
2019-05-08 13:56:42 -07:00
Benjamin Sergeant
98e2fbca6a
ws connect display more accurate messages for incoming messages
2019-05-08 13:56:42 -07:00
Benjamin Sergeant
14ec8522ef
remove un-needed _backgroundThreadRunning variable
2019-05-01 11:09:25 -07:00
Benjamin Sergeant
0c2d1c22bc
Make AutomaticReconnection optional ( #47 )
...
* unittest pass + commands behave as expected
* cleanup
2019-04-29 21:12:34 -07:00
Benjamin Sergeant
705e0823cb
ws connect mode / add a flag to disable automatic reconnection, not hooked up yet
2019-04-29 14:31:29 -07:00
Benjamin Sergeant
0a7157655b
initialize netSystem (aka winsock on windows) explicitely
2019-04-25 16:38:15 -07:00
Benjamin Sergeant
9367a1feff
Fix data race in WebSocket where _url is accessed without protection in setThreadName
...
Also fix with url usage + docker container uses fedora and works with tsan
2019-04-25 16:11:46 -07:00
Benjamin Sergeant
f1b3ecc738
compiler warning police
2019-04-24 09:45:03 -07:00
Benjamin Sergeant
773f92347f
ws cobra publish stress mode fix
2019-04-23 20:51:58 -07:00
Benjamin Sergeant
c85d5da111
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
Benjamin Sergeant
210d19c8a0
doc cobra
2019-04-21 11:52:38 -07:00
Benjamin Sergeant
3dd902e1f9
move cobra files to their own subfolder
2019-04-21 11:20:17 -07:00
Benjamin Sergeant
f85c5002b7
add cobra metrics publisher
2019-04-21 11:16:33 -07:00
Benjamin Sergeant
56f164ce2b
fix warning / ws_cobra_subscribe does not need a verbose flag
2019-04-19 11:45:42 -07:00
Benjamin Sergeant
4c4137d9f2
(ws) fix compiler warnings
2019-04-19 09:48:46 -07:00
Benjamin Sergeant
10b2d10dbd
(doc) Add more doc to SocketServer
2019-04-17 20:36:26 -07:00
Dimon4eg
fbb7c012a3
fix windows build ( #29 )
...
* fix windows build
* fix for Unix
* Fix build if TLS is OFF
* add OpenSSL req to ws
* Fix build on Mac
* fix tests for windows
2019-04-16 08:51:57 -07:00
Dimon4eg
dac18fcabf
move security framework linking to ixwebsocket ( #26 )
2019-04-14 17:13:24 -07:00
Benjamin Sergeant
fbf80b9f50
ws: new command to subscribe to a cobra server and send an event to a sentry server
2019-04-11 16:03:05 -07:00
Benjamin Sergeant
c2a9139d41
(ws) add subcommands: cobra subscribe, and cobra subscribe to statsd bridge
2019-04-08 21:56:01 -07:00
Benjamin Sergeant
2e9c610ac9
Bump sleep time in test shell script
2019-03-29 09:36:56 -07:00
Benjamin Sergeant
eb063ec60a
(redis_subscribe) in verbose mode, received message gets printed with a 'received: ' header
2019-03-29 09:35:19 -07:00
Benjamin Sergeant
497373d976
ws redis command improvements + test script
2019-03-27 13:41:46 -07:00
Benjamin Sergeant
91198aca0d
(ws) redis_subscribe and redis_publish can take a password + display subscribe response
2019-03-26 09:33:22 -07:00
Benjamin Sergeant
b17a5e5f0b
update doc
2019-03-24 21:48:14 -07:00
Benjamin Sergeant
ee25bd0f92
Feature/connection state ( #25 )
...
* (cmake) add a warning about 32/64 conversion problems.
* fix typo
* New connection state for server code + fix OpenSSL double init bug
* update README
2019-03-20 18:34:24 -07:00
Benjamin Sergeant
e77b9176f3
Feature/redis ( #23 )
...
* Fix warning
* (cmake) add a warning about 32/64 conversion problems.
* simple redis clients
* can publish to redis
* redis subscribe
* display messages received per second
* verbose flag
* (cmake) use clang only compile option -Wshorten-64-to-32 when compiling with clang
2019-03-20 14:29:02 -07:00
Benjamin Sergeant
ceba8ae620
fix bug with isReadyToWrite
2019-03-18 22:05:04 -07:00
Benjamin Sergeant
fead661ab7
workaround bug in Socket::isReadyToWrite
2019-03-18 20:37:33 -07:00
Benjamin Sergeant
a04f83930f
ws / log subcommand name
2019-03-18 17:54:06 -07:00
Benjamin Sergeant
2a90e3f478
when trying to flush the send buffer, use select to wait until it is possible instead of using sleep to retry at a given frequency
2019-03-18 14:25:27 -07:00