Commit Graph

212 Commits

Author SHA1 Message Date
Benjamin Sergeant
0635313566 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
Michael Lu
663299c91e Fixed heartbeat typos (#22) 2019-03-19 21:31:43 -07:00
Benjamin Sergeant
523a6e989a make PollResultType an enum class 2019-03-19 09:29:57 -07:00
Benjamin Sergeant
13f4aee5ee fix bug with isReadyToWrite 2019-03-18 22:05:04 -07:00
Benjamin Sergeant
bbc0e2106c workaround bug in Socket::isReadyToWrite 2019-03-18 20:37:33 -07:00
Benjamin Sergeant
eb6ee52aaa use milliseconds 2019-03-18 20:17:44 -07:00
Benjamin Sergeant
80e330d4c3 ws / log subcommand name 2019-03-18 17:54:06 -07:00
Benjamin Sergeant
a3adc49d8c disable sigpipe on osx when writing/reading into a dead pipe 2019-03-18 17:52:01 -07:00
Benjamin Sergeant
9c6eeed0f8 edit homebrew install steps 2019-03-18 15:45:33 -07:00
Benjamin Sergeant
705e9a93f8 add an install target 2019-03-18 15:11:08 -07:00
Benjamin Sergeant
572a217050 no default parameters for isReadyToWrite and isReadyToRead 2019-03-18 14:31:21 -07:00
Benjamin Sergeant
d58798e36c 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
Dimon4eg
e98634a277 Fix typo (#19) 2019-03-17 16:08:28 -07:00
Benjamin Sergeant
f1f08eced0 remove unused gitmodule file 2019-03-17 10:38:48 -07:00
Benjamin Sergeant
6c2da9f0e4 remove unused folder 2019-03-17 10:38:19 -07:00
Benjamin Sergeant
e158635f57 linux hangs when closing 2019-03-16 11:38:23 -07:00
Benjamin Sergeant
5a241e77da edit README 2019-03-16 11:32:46 -07:00
Benjamin Sergeant
68e397ab34 use pipe to abort select on Linux as well as macOS 2019-03-15 17:46:40 -07:00
Benjamin Sergeant
4c78b94cd8 missing assert include on Linux 2019-03-15 11:43:27 -07:00
Benjamin Sergeant
3a9cc9b079 cleanup 2019-03-15 11:41:57 -07:00
Benjamin Sergeant
6ff8c6e7f3 unittest fix 2019-03-14 18:58:16 -07:00
Benjamin Sergeant
6f90425154 linux compile fix 2019-03-14 18:55:33 -07:00
Benjamin Sergeant
49ec9b1d9e linux fixes 2019-03-14 18:54:47 -07:00
Benjamin Sergeant
a0e35ad644 build fix 2019-03-14 18:53:21 -07:00
Benjamin Sergeant
b91dc77d6f select interrupt cleanup 2019-03-14 18:37:38 -07:00
Benjamin Sergeant
b462b5a5c8 linux build fix 2019-03-14 15:17:17 -07:00
Benjamin Sergeant
b5e7fb20b6 replace uint8_t with uint64_t for the send/close requests types / use named variable to index into the _fildes array 2019-03-14 15:03:57 -07:00
Benjamin Sergeant
9d245add9c set a default close reason string 2019-03-14 14:52:51 -07:00
Benjamin Sergeant
ded03ed743 do not busy loop while sending 2019-03-14 14:48:08 -07:00
Benjamin Sergeant
6cc260c04e remove docker folder 2019-03-14 14:48:02 -07:00
Benjamin Sergeant
5b4354a6f3 send optimization + ws file transfer test 2019-03-14 14:47:53 -07:00
Benjamin Sergeant
34de36fe01 Update README.md
Stop lying about Windows support ...
2019-03-13 23:10:40 -07:00
Benjamin Sergeant
08c2cdbf1d 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
dedbeb3eab websocket send: make sure all data in the kernel buffer is sent 2019-03-11 22:16:55 -07:00
Benjamin Sergeant
d88bf16500 add new message type when receiving message fragments 2019-03-11 11:12:43 -07:00
Benjamin Sergeant
ad9c8318a7 ws broacast_server / can set serving hostname 2019-03-10 16:36:44 -07:00
Benjamin Sergeant
f2778c0729 debian 9 unittest build fix 2019-03-10 16:07:48 -07:00
Benjamin Sergeant
03ca73658c asan test suite fix 2019-03-09 10:45:40 -08:00
Benjamin Sergeant
1da5f6c30c unittest + warning fix 2019-03-09 10:37:14 -08:00
Benjamin Sergeant
bee8a99a34 add ability to run with asan on macOS 2019-03-05 17:07:28 -08:00
Benjamin Sergeant
f5efd41dc1 fix compiler warnings in ws command line tool 2019-03-04 13:56:30 -08:00
Benjamin Sergeant
c202f8cf1d Socket code refactoring, plus stop polling with a 1s timeout in readBytes while we only want to poll with a 1ms timeout 2019-03-04 13:40:15 -08:00
Benjamin Sergeant
0c226c7629 readBytes does not read bytes one by one but in chunks 2019-03-02 21:11:16 -08:00
Benjamin Sergeant
a9e772f330 create a blocking + cancellable Socket::readBytes method 2019-03-02 15:16:46 -08:00
Benjamin Sergeant
86cc76388e create a blocking + cancellable Socket::readBytes method 2019-03-02 11:01:51 -08:00
Benjamin Sergeant
0f4e9af172 more ws doc 2019-02-28 22:07:45 -08:00
Benjamin Sergeant
3a1352c8ec more ws doc 2019-02-28 22:03:48 -08:00
Benjamin Sergeant
2c86fd947f 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
927484a71f Update README.md 2019-02-22 21:53:29 -08:00
Benjamin Sergeant
88adb8f5ef mv cobra_publisher under ws folder 2019-02-22 21:51:03 -08:00