Commit Graph

59 Commits

Author SHA1 Message Date
Benjamin Sergeant
747b4495b0 add env var to display the ws command typed in 2019-05-10 19:37:32 -07:00
Benjamin Sergeant
f0b955efd2 cout -> spdlog 2019-05-10 19:37:32 -07:00
Benjamin Sergeant
0ef9e81435 use spdlog for logging in ws + unittest + remove un-needed mutex 2019-05-10 19:37:32 -07:00
Benjamin Sergeant
6f9e7ad245 cout -> cerr 2019-05-10 19:37:32 -07:00
Benjamin Sergeant
e50974dc4b warning police 2019-05-10 19:37:32 -07:00
Benjamin Sergeant
c0a80264d1 IXCobraMetricsThreadedPublisher.cpp uses a lambda to log instead of std::cerr 2019-05-10 19:35:39 -07:00
Benjamin Sergeant
72b3ebf69e change default ports for the ws command line tool 2019-05-10 19:35:39 -07:00
Benjamin Sergeant
e17309f030 ws connect display more accurate messages for incoming messages 2019-05-10 19:35:39 -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
Benjamin Sergeant
4f2babaf54 select interrupt cleanup 2019-03-14 18:37:38 -07:00
Benjamin Sergeant
d6b49b54d4 do not busy loop while sending 2019-03-14 14:48:08 -07:00
Benjamin Sergeant
18550cf1cb send optimization + ws file transfer test 2019-03-14 14:47:53 -07:00
Benjamin Sergeant
2750df8aa7
send can fail silently when sending would block (EWOULDBLOCK return for send) (#18)
* try to use a pipe for communication

* flush send buffer on the background thread

* cleanup

* linux fix / linux still use event fd for now

* cleanup
2019-03-13 23:09:45 -07:00
Benjamin Sergeant
d6597d9f52 websocket send: make sure all data in the kernel buffer is sent 2019-03-11 22:16:55 -07:00
Benjamin Sergeant
892ea375e3 add new message type when receiving message fragments 2019-03-11 11:12:43 -07:00
Benjamin Sergeant
03abe77b5f ws broacast_server / can set serving hostname 2019-03-10 16:36:44 -07:00
Benjamin Sergeant
b3d77f8902 fix compiler warnings in ws command line tool 2019-03-04 13:56:30 -08:00
Benjamin Sergeant
fe7d94194c readBytes does not read bytes one by one but in chunks 2019-03-02 21:11:16 -08:00
Benjamin Sergeant
18e7189a07 more ws doc 2019-02-28 22:07:45 -08:00
Benjamin Sergeant
785dd42c84 more ws doc 2019-02-28 22:03:48 -08:00
Benjamin Sergeant
0cff5065d9
Feature/http (#16)
* add skeleton and broken http client code.

GET returns "Resource temporarily unavailable" errors...

* linux compile fix

* can GET some pages

* Update formatting in README.md

* unittest for sending large messages

* document bug

* Feature/send large message (#14)

* introduce send fragment

* can pass a fin frame

* can send messages which are a perfect multiple of the chunk size

* set fin only for last fragment

* cleanup

* last fragment should be of type CONTINUATION

* Add simple send and receive programs

* speedups receiving + better way to wait for thing

* receive speedup by using linked list of chunks instead of large array

* document bug

* use chunks to receive data

* trailing spaces

* Update README.md

Add note about message fragmentation.

* Feature/ws cli (#15)

* New command line tool for transfering files / still very beta.

* add readme

* use cli11 for argument parsing

* json -> msgpack

* stop using base64 and use binary which can be stored in message pack

* add target for building with homebrew

* all CMakeLists are referenced by the top level one

* add ws_chat and ws_connect sub commands to ws

* cleanup

* add echo and broadcast server as ws sub-commands

* add gitignore

* comments

* ping pong added to ws

* mv cobra_publisher under ws folder

* Update README.md

* linux build fix

* linux build fix

* move http_client to a ws sub-command

* simple HTTP post support (urlencode parameters)

* can specify extra headers

* chunk encoding / simple redirect support / -I option

* follow redirects is optional

* make README vim markdown plugin friendly

* cleanup argument parsing + add socket creation factory

* add missing file

* http gzip compression

* cleanup

* doc

* Feature/send large message (#14)

* introduce send fragment

* can pass a fin frame

* can send messages which are a perfect multiple of the chunk size

* set fin only for last fragment

* cleanup

* last fragment should be of type CONTINUATION

* Add simple send and receive programs

* speedups receiving + better way to wait for thing

* receive speedup by using linked list of chunks instead of large array

* document bug

* use chunks to receive data

* trailing spaces
2019-02-28 21:54:03 -08:00
Benjamin Sergeant
e881b82511
Update README.md 2019-02-22 21:53:29 -08:00