Commit Graph

583 Commits

Author SHA1 Message Date
Benjamin Sergeant
21404c23dd snake unsubscription fixes 2019-09-05 20:47:15 -07:00
Benjamin Sergeant
eeefc9cf4b Fix compiler warning 2019-09-05 20:29:14 -07:00
Benjamin Sergeant
24b2475b11 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
2defe6f597 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
f9dc460325 cobra publish fix 2019-09-05 14:31:28 -07:00
Benjamin Sergeant
30b83b5ff0 Update README.md 2019-09-05 14:30:51 -07:00
Benjamin Sergeant
003afc8b56 all client autobahn test should pass ! last failing one was ...
+- zlib/deflate has a bug with windowsbits == 8, so we silently upgrade it to 9/ (fix autobahn test 13.X which uses 8 for the windows size)
2019-09-04 21:01:30 -07:00
Benjamin Sergeant
95a97a197a Fragmentation: for sent messages which are compressed, the continuation fragments should not have the rsv1 bit set (fix all autobahn tests for zlib compression 12.X)
Websocket Server / do a case insensitive string search when looking for an Upgrade header whose value is websocket. (some client use WebSocket with some upper-case characters)
2019-09-04 18:23:56 -07:00
Benjamin Sergeant
eccd8b3c0e ws autobahn / use condition variables for stopping test case + add more logging on errors 2019-09-04 12:21:54 -07:00
Benjamin Sergeant
a43046c921 ws autobahn / report progress with spdlog::info to get timing info 2019-09-04 10:16:32 -07:00
Benjamin Sergeant
b360fb9ca0 truncate module 2019-09-03 20:14:35 -07:00
Benjamin Sergeant
0bf185e143 Per message deflate/compression: handle fragmented messages (fix autobahn test: 12.1.X and probably others) 2019-09-03 17:42:48 -07:00
Benjamin Sergeant
da3d134be0 Receiving invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling) 2019-09-03 16:07:48 -07:00
Benjamin Sergeant
b4c4746d43 IXWebSocketTransport message processing refactoring 2019-09-03 15:48:55 -07:00
Benjamin Sergeant
fdd1ad9b17 Validate close codes. Autobahn 7.9.* 2019-09-03 15:43:16 -07:00
Benjamin Sergeant
1be8d9d46f Validate that the close reason is proper utf-8. Autobahn 7.5.1 2019-09-03 14:35:40 -07:00
Benjamin Sergeant
51799353a6 Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling) 2019-09-03 14:12:40 -07:00
Benjamin Sergeant
3ad13a592d Framentation: data and continuation blocks received out of order (fix autobahn test: 5.9 through 5.20 Fragmentation) 2019-09-03 12:02:56 -07:00
Benjamin Sergeant
55934918ff Sending invalid UTF-8 TEXT message should fail and close the connection (fix **tons** of autobahn test: 6.X UTF-8 Handling) 2019-09-03 10:30:22 -07:00
Benjamin Sergeant
ab93e4f168 Message type (TEXT or BINARY) is invalid for received fragmented messages (fix autobahn test: 5.3 through 5.8 Fragmentation) 2019-09-03 09:13:38 -07:00
Benjamin Sergeant
e1ad0b0889 bump version 2019-09-02 10:14:15 -07:00
Benjamin Sergeant
cbe3e7617c Ping and Pong messages cannot be fragmented (autobahn test: 5.1 and 5.2 Fragmentation) 2019-09-02 10:13:40 -07:00
Benjamin Sergeant
94c8966e86 Close connections when reserved bits are used (autobahn test: 3 Reserved Bits) 2019-09-01 16:23:00 -07:00
Benjamin Sergeant
d973a062c2 changelog 2019-09-01 11:39:00 -07:00
Benjamin Sergeant
ba41dbc69a readme 2019-09-01 11:38:39 -07:00
Benjamin Sergeant
96380dd462 doc 2019-09-01 11:28:27 -07:00
Benjamin Sergeant
61bd765784 compute test case count properly 2019-09-01 11:17:28 -07:00
Benjamin Sergeant
4a0f06193b refactoring 2019-09-01 11:10:27 -07:00
Benjamin Sergeant
826917ef17 condition variable instead of busy looping 2019-09-01 10:50:16 -07:00
Benjamin Sergeant
4e1dbbbecf quiet mode 2019-09-01 10:45:51 -07:00
Benjamin Sergeant
b5b0de2083 +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
a95fcbbdbf user agent 2019-08-30 12:50:56 -07:00
Benjamin Sergeant
7a73ec7c06 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
0c1f2252a1 readme 2019-08-26 22:49:40 -07:00
Benjamin Sergeant
98a397696c readme 2019-08-26 22:29:10 -07:00
Benjamin Sergeant
225b7d7db7 doc / bring back detailed APIs 2019-08-26 22:11:35 -07:00
Benjamin Sergeant
f968d4c333 one last tweak 2019-08-26 22:02:24 -07:00
Benjamin Sergeant
59e15be524 readme tweaks 2019-08-26 21:57:05 -07:00
Benjamin Sergeant
ccabe93ae8 new simple readme 2019-08-26 21:55:00 -07:00
Benjamin Sergeant
56def6def4 Add md doc made with mkdocs 2019-08-26 21:25:45 -07:00
Benjamin Sergeant
3b1a1efed2 fix #104 - change ZLIB find_package to be optional 2019-08-26 14:51:33 -07:00
Benjamin Sergeant
185869e628 tentative gcc build fix 2019-08-26 14:29:16 -07:00
Benjamin Sergeant
108f6238e3 bump version 2019-08-26 10:20:01 -07:00
Benjamin Sergeant
d3e5a63fa2 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
0847e60d2a 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
ac60ec4320 put windows poll in the global namespace, not ix namespace 2019-08-26 09:51:37 -07:00
ozychhi
93debc00dc Add client handshake extra headers (#105)
Even though 6455 defines all the necessary headers needed for
client/server handshake, in practice most of the cases websocket servers
expect few more headers. Therefore adding this functionality.
2019-08-26 09:37:40 -07:00
Benjamin Sergeant
ff75846d2d Windows: use select instead of WSAPoll, through a poll wrapper 2019-08-22 10:34:17 -07:00
Benjamin Sergeant
53c767140d add new makefile target to make git tags 2019-08-20 09:21:30 -07:00
Benjamin Sergeant
839a747ce8 bump version + talk about Windows fix in the changelog 2019-08-20 09:20:02 -07:00