Benjamin Sergeant
e8583000b8
ping pong added to ws
2019-02-22 21:47:57 -08:00
Benjamin Sergeant
d642ef1a89
comments
2019-02-22 21:27:49 -08:00
Benjamin Sergeant
2df118022d
add gitignore
2019-02-22 21:26:25 -08:00
Benjamin Sergeant
95457c8f4c
add echo and broadcast server as ws sub-commands
2019-02-22 21:25:56 -08:00
Benjamin Sergeant
0a45b7787f
cleanup
2019-02-22 20:51:22 -08:00
Benjamin Sergeant
b8c397e180
add ws_chat and ws_connect sub commands to ws
2019-02-22 20:49:26 -08:00
Benjamin Sergeant
90105fa2b3
all CMakeLists are referenced by the top level one
2019-02-21 22:21:29 -08:00
Benjamin Sergeant
24859fef8a
add target for building with homebrew
2019-02-21 22:05:30 -08:00
Benjamin Sergeant and GitHub
73d7280723
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
2019-02-21 21:24:53 -08:00
Benjamin Sergeant and GitHub
262de49c3c
Update README.md
...
Add note about message fragmentation.
2019-02-21 14:08:27 -08:00
Benjamin Sergeant and GitHub
3a77e96a05
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-20 18:59:07 -08:00
Benjamin Sergeant
505dd6d50f
document bug
2019-02-16 10:33:37 -08:00
Benjamin Sergeant
3f8027b65c
unittest for sending large messages
2019-02-16 10:32:02 -08:00
Benjamin Sergeant and GitHub
0f2c765f45
Update formatting in README.md
2019-02-05 23:04:45 -08:00
Benjamin Sergeant
49077f8f44
more conf in CI
2019-01-29 17:50:19 -08:00
Benjamin Sergeant
6a23b8530f
get free port that can be used by non root users (> 1024)
2019-01-28 15:24:19 -08:00
Benjamin Sergeant
ae841af91a
use dynamically generated port number to configure servers in unittest
2019-01-28 15:24:19 -08:00
Benjamin Sergeant and GitHub
44f38849b2
Merge pull request #13 from machinezone/user/bsergeant/poll
...
User/bsergeant/poll
2019-01-27 10:47:38 -08:00
Benjamin Sergeant
ee12fbdb5f
windows build fix
2019-01-27 10:46:02 -08:00
Benjamin Sergeant
316c630830
constexpr to declare number of fds
2019-01-26 21:01:36 -08:00
Benjamin Sergeant
1ea5db6110
linux fix
2019-01-26 20:57:48 -08:00
Benjamin Sergeant
986d9a00c0
remove shutdown call
2019-01-26 20:54:23 -08:00
Benjamin Sergeant
7a05a11014
rebase poll branch
2019-01-26 20:50:25 -08:00
Benjamin Sergeant
f09434263c
insensitive string compare when validating server connection header
2019-01-25 16:17:51 -08:00
Benjamin Sergeant and GitHub
335f594165
Merge pull request #12 from machinezone/user/bsergeant/heart-beat
...
Add an optional heartbeat
2019-01-25 16:14:28 -08:00
Benjamin Sergeant
fa7ef06f4d
heartbeat correct
2019-01-25 16:11:39 -08:00
Benjamin Sergeant
3c9ec0aed0
close server socket on exit
2019-01-24 21:16:32 -08:00
Benjamin Sergeant
c665d65cba
unittest fix
2019-01-24 19:54:10 -08:00
Benjamin Sergeant
5d4e897cc4
add an heartbeat test
2019-01-24 18:50:07 -08:00
Benjamin Sergeant
05033714bf
hearbeat
2019-01-24 12:42:49 -08:00
Benjamin Sergeant and GitHub
a02bd3f25c
Update README.md
2019-01-15 09:36:43 -08:00
Benjamin Sergeant
fdbd213fa2
check and validate the Connection: Upgrade header in client/server
2019-01-15 09:31:37 -08:00
Benjamin Sergeant and GitHub
da64d349c8
Merge pull request #10 from tonylin0826/master
...
Fix missing "Upgrade" header error
2019-01-15 09:22:11 -08:00
Benjamin Sergeant
79dd766fab
C++14 + use make_unique and make_shared to make shared pointers
2019-01-11 21:25:06 -08:00
Benjamin Sergeant
8375b28747
add travis badge
2019-01-08 10:13:23 -08:00
Benjamin Sergeant
e12551f309
travis -> osx
2019-01-08 10:04:47 -08:00
Benjamin Sergeant
6102f81710
Revert "Revert "try asan on Linux"" [Back to asan on Linux]
...
This reverts commit 02a704a8c7 .
2019-01-07 21:13:48 -08:00
Benjamin Sergeant
9f678e5962
travis-ci: try to use clang on Linux
2019-01-07 20:49:03 -08:00
Benjamin Sergeant
02a704a8c7
Revert "try asan on Linux"
...
This reverts commit dd2360ed70 .
2019-01-07 20:47:25 -08:00
Benjamin Sergeant
dd2360ed70
try asan on Linux
2019-01-07 18:29:44 -08:00
Benjamin Sergeant
c4ab996470
build with osx on travis
2019-01-07 18:16:29 -08:00
Benjamin Sergeant
6c54b07d92
fix simple compile error in test/IXTest.h
2019-01-07 18:08:11 -08:00
Benjamin Sergeant
7f9bef3b8d
add a travis file for real
2019-01-07 18:05:55 -08:00
Benjamin Sergeant
12d1c5d956
add a travis file
2019-01-07 18:04:28 -08:00
Benjamin Sergeant
e9a4bd5617
update test remote ws url
2019-01-07 11:28:53 -08:00
Benjamin Sergeant
f34ccbfdb5
remove cmake sanitizer submodule
2019-01-07 11:26:23 -08:00
Benjamin Sergeant
1fa75d7fb2
check select errors better
2019-01-07 11:18:00 -08:00
Benjamin Sergeant
39140ef98c
sanitizer cmake stuff
2019-01-06 18:54:16 -08:00
Benjamin Sergeant
e30ef4a87c
DNSLookup _id member does not need to be an atomic
2019-01-06 18:32:19 -08:00
Benjamin Sergeant
9fc94f0487
DNSLookup: fix #8
2019-01-06 18:27:26 -08:00
Benjamin Sergeant
121acdab6f
DNSLookup: copy hostname and port instead of accessing member
2019-01-06 18:17:12 -08:00
Benjamin Sergeant
6deaa03114
return false -> return -1
2019-01-06 18:10:39 -08:00
Benjamin Sergeant
f4f30686c5
add new unittest
2019-01-06 15:14:13 -08:00
Benjamin Sergeant
a21aae521f
remove dead file
2019-01-06 14:26:11 -08:00
Benjamin Sergeant
aed2356fc1
remove openssl testing bits for apple build
2019-01-06 14:21:49 -08:00
Benjamin Sergeant
a478f734f6
gcc linux compile fix
2019-01-06 12:12:39 -08:00
Benjamin Sergeant
98c579da03
make a class hierarchy for server code (IXWebSocketServer <- IXSocketServer)
2019-01-06 12:09:31 -08:00
Benjamin Sergeant
e80def0cd0
add log
2019-01-05 21:16:13 -08:00
Benjamin Sergeant
cc8a9e883e
unittest + compiler warnings
2019-01-05 21:10:08 -08:00
Benjamin Sergeant
4d587e35d8
windows compile fix
2019-01-05 21:02:55 -08:00
Benjamin Sergeant
50f4fd1115
int -> ssize_t for socker recv and send
2019-01-05 20:53:50 -08:00
Benjamin Sergeant
06d2b68696
header refactoring
2019-01-05 20:38:43 -08:00
Benjamin Sergeant
bf6f057777
windows connect (compile fix)
2019-01-05 17:35:50 -08:00
Benjamin Sergeant
b57c1d69f2
windows connect potential fix
2019-01-05 17:32:21 -08:00
Benjamin Sergeant
ff265d83f9
more accurate description of errors
2019-01-05 17:18:43 -08:00
Benjamin Sergeant
5b1c97b774
SocketTest / more debug info
2019-01-05 17:10:01 -08:00
Benjamin Sergeant
c8c81366f7
windows (compile) fix
2019-01-05 17:04:09 -08:00
Benjamin Sergeant
9a37fd56d1
windows fix
2019-01-05 17:02:39 -08:00
Benjamin Sergeant
7ecaff8c5d
test failure is not noticed
2019-01-05 16:30:22 -08:00
Benjamin Sergeant
e4b0286a25
fix gcc warning
2019-01-05 16:26:11 -08:00
Benjamin Sergeant
7ae6972306
makefile tweak
2019-01-05 14:43:21 -08:00
Benjamin Sergeant
59cea0372b
add dns lookup test
2019-01-05 14:40:17 -08:00
Benjamin Sergeant
78d88a8520
openssl cleanup
2019-01-05 11:42:25 -08:00
Benjamin Sergeant and GitHub
273af25d57
Merge pull request #7 from bsergean/user/bsergeant/appveyor_first
...
unittest on appveyor
2019-01-04 17:29:23 -08:00
Benjamin Sergeant
3f5935a284
windows fixes
2019-01-04 15:23:57 -08:00
Benjamin Sergeant and GitHub
c236ff66e9
Merge pull request #6 from machinezone/user/bsergeant/server
...
Add support for writing websocket servers (IXWebSocketServer)
2019-01-03 18:47:30 -08:00
Benjamin Sergeant
af3df5e519
Socket::readLine works with arbitrary long lines
2019-01-03 18:47:01 -08:00
Benjamin Sergeant
d75753ec98
timeout is configurable
2019-01-03 18:33:08 -08:00
Benjamin Sergeant
332bb87231
remove useless FIXME comment
2019-01-03 18:02:03 -08:00
Benjamin Sergeant
8adbcab441
new doc
2019-01-03 18:00:48 -08:00
Benjamin Sergeant
9bc2e95196
capture path/uri when connecting, and pass it back through callbacks in the openInfo member
2019-01-03 17:44:10 -08:00
Benjamin Sergeant
30a0aa0a0f
implement a max connections (default = 32) settings
2019-01-03 17:05:44 -08:00
Benjamin Sergeant
8622ea5cb2
correct validation of the request (request line + headers)
2019-01-03 13:41:06 -08:00
Benjamin Sergeant
ed3a50d9b5
cancellation refactoring
2019-01-03 12:53:44 -08:00
Benjamin Sergeant
df6a17dcc2
rename test file
2019-01-02 21:59:06 -08:00
Benjamin Sergeant
474985e784
split handshake code into its own files, so that Transport file is less massive
2019-01-02 20:07:54 -08:00
Benjamin Sergeant
cb904416c3
server unittest for validating client request / new timeout cancellation handling (need refactoring)
2019-01-02 16:08:32 -08:00
Benjamin Sergeant
3e064ec63e
add new broadcast server example
2019-01-02 08:17:03 -08:00
Benjamin Sergeant
b004769552
server per message deflate support
2019-01-02 08:12:29 -08:00
Benjamin Sergeant
17270de621
echo server example is a real echo server, not a broadcast server
2019-01-02 08:10:39 -08:00
Benjamin Sergeant
239b5bc02c
refactoring + cancellation was buggy during http upgrade
2019-01-02 07:45:07 -08:00
Benjamin Sergeant
6bfabd5493
use select to detect new incoming connections
2019-01-01 22:21:07 -08:00
Benjamin Sergeant
0b90f7df1b
add a way to run in blocking more, which is useful for server mode to have N*thread instead of 2N*thread for N connections
2019-01-01 21:25:15 -08:00
Benjamin Sergeant
00ca7c8fb0
more named constants
2019-01-01 19:23:27 -08:00
Benjamin Sergeant
a11952fe22
gitignore stuff
2019-01-01 17:14:31 -08:00
Benjamin Sergeant
06b9b2e649
linux fix + unittest works with Linux
2019-01-01 17:13:26 -08:00
Benjamin Sergeant
dcfdcc3e1b
unittest starts a server
2019-01-01 16:34:05 -08:00
Benjamin Sergeant
b13fee16c1
crash when server failed to start
2019-01-01 16:14:46 -08:00
Benjamin Sergeant
9a7767ecb1
thread accepting connections can be cancelled/stopped externally
2019-01-01 16:11:27 -08:00
Benjamin Sergeant
9b82a33aff
listen job run in its own thread, non blocking
2019-01-01 14:52:14 -08:00