Luigi Pinca
1682df15bf
Avoid using deprecated Buffer API
...
Usage of `Buffer` constructor has been deprecated due to usability
issues that can potentially lead to accidental security issues.
Refs: https://nodejs.org/api/deprecations.html#deprecations_dep0005_buffer_constructor
Tracking: https://github.com/nodejs/node/issues/19079
2018-03-22 09:49:28 +01:00
James Coglan
47c5e4d9ee
Handle errors in the draft76 handshake by throwing an error that Base.start() will catch, triggering a 400 response.
2017-11-23 08:51:35 +00:00
James Coglan
ae30f9952f
Bake the isWebSocket() check into the start() method so that if somebody constructs a driver without making that check, the driver will send a 400 response.
2017-11-23 08:30:24 +00:00
James Coglan
287bbe8a7a
If any driver fails to generate a handshake response, then send a 400. This means the initial http() method to select a driver doesn't need to contain all the validation logic for all the details of each protocol version, but protocol errors still result in a failed connection.
2017-11-19 19:47:30 +00:00
James Coglan
1325828a9e
Add ping/pong events to the API.
2017-08-02 21:57:47 +01:00
James Coglan
4a3d51cc5b
Incorporate StreamReader into Draft75 so that it retains input and recovers safely from exceptions in event listeners.
2015-07-07 21:30:06 +01:00
James Coglan
ed17186354
In the Hybi driver, perform parser state changes before validating and emitting events. This protects the parser against errors thrown by event listeners.
2015-07-07 20:36:30 +01:00
James Coglan
1df1293456
Change stage in the Base.shutdown() method to that all parsers stop processing input.
2015-07-04 21:07:34 +01:00
James Coglan
d901d3e48d
If an event listener emits an error, close the connection with code 1011.
2015-07-04 20:54:22 +01:00
Victor Gama
309b5651a7
Implement 'pong' command to hybi.js
2015-07-04 18:33:59 +01:00
James Coglan
0034f5fe19
Fail the connection when the server receives an invalid Sec-WebSocket-Extensions header.
2015-03-26 08:51:34 +00:00
James Coglan
5cba268409
Throw an error if drivers are created with unrecognised options.
2014-12-17 22:18:06 +00:00
James Coglan
c986ad231c
Enable strict mode on all source files.
2014-11-23 20:09:26 +00:00
James Coglan
0332ce2625
Initial support for permessage-deflate, only supports client-to-server compression but enough to pass the Autobahn suite.
2014-11-23 13:11:24 +00:00
James Coglan
eb2d329a16
Clean up some formatting typos.
2014-11-08 17:20:51 +00:00
James Coglan
208be33754
Refactor the way headers are generated in all the drivers.
2014-11-08 16:12:14 +00:00
James Coglan
6eb04d5acc
Remove a redundant assignment.
2014-11-06 23:20:32 +00:00
James Coglan
550b3d906d
Unify the proxy handshake, TLS handshake, and WebSocket protocol into a single stream when using driver.proxy() to simplify the API.
2014-11-05 23:30:15 +00:00
James Coglan
76f4128634
Redesign the proxy API so that we can more cleanly deal with TLS, either to the proxy server or origin server or both, while still allowing control of the TLS options and custom headers, and not leaking so much of the implementation.
2014-10-29 22:07:01 +00:00
James Coglan
dfe7b2b000
Trailing blank lines are bad.
2014-05-17 00:35:31 +01:00
Guangcong Luo
cda22e3bef
Lower default max buffer length
...
Real-world testing shows that the previous max buffer length
of ~1GB was too high, and messages of the size of roughly 300MB
could still cause the process to crash from running out of
memory. 64MB seems like a reasonably conservative maximum.
2013-12-24 19:26:38 -06:00
James Coglan
82c42a6ce5
Extend max-length checking to draft-{75,76}.
2013-12-20 10:09:31 +00:00
James Coglan
1124df2bf5
Add a Server driver for running WebSockets through a bare TCP server.
2013-05-12 01:13:50 +01:00
James Coglan
ea4e289669
Add a setHeader() function to allow peers to add headers to their handshake responses.
2013-05-11 22:26:20 +01:00
James Coglan
25c075a408
Rename the module to websocket-driver.
2013-05-04 16:42:44 +01:00