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
8cf42d6050
Apply @zingaburga's StreamReader optimisations from https://github.com/faye/websocket-driver-node/issues/10 .
2015-02-16 20:07:40 +00:00
James Coglan
23675e08ee
Don't expose the internal frame structure of messages to extensions; they should not be able to depend on seeing the actual frame boundaries off the wire because that requires all extensions to leave them intact.
2014-12-06 22:08:37 +00:00
James Coglan
330fa2073d
Don't assume that messages coming out of extensions have anything but the standard websocket-extensions API.
2014-11-29 01:54:20 +00:00
James Coglan
f904131d21
Extract the Extensions class into another module.
2014-11-25 21:14:17 +00:00
James Coglan
ee664ba6c9
Decouple Extensions and individual extension libs from the Driver.fail() method, emitting errors instead.
2014-11-25 19:42:54 +00:00
James Coglan
538239b761
Move the header-parsing functions into class methods on Extensions.
2014-11-25 09:11:58 +00:00
James Coglan
2bc103c781
Adjust the data structures in the Extensions parser so that the server sets the order of extensions, per the spec.
2014-11-24 23:03:50 +00:00
James Coglan
eceb59e2fb
Implement the client-side framework for extensions.
2014-11-24 22:05:31 +00:00
James Coglan
c986ad231c
Enable strict mode on all source files.
2014-11-23 20:09:26 +00:00
James Coglan
ef897eed1c
Implement deflate compression on server-to-client messages.
2014-11-23 19:45:02 +00:00
James Coglan
724a5f19a4
Flesh out the parameter validation for extensions, and provide better support for multiple values of extension params and HTTP headers.
2014-11-23 15:21:11 +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
6146615801
Extract Hybi parser state into Frame and Message structs.
...
This makes the structure of all the state in the parser easier to see,
it makes it easier to free memory by deleting a single struct rather
than many related fields, and it produces some data structures that will
be useful for adding extensions.
2014-11-22 13:34:34 +00:00
James Coglan
ed3907d5fd
Clean up the state management code in StreamReader.
2014-05-07 20:49:49 +01:00
David Glasser
8d19ee823e
StreamReader: Don't hang on to fully read buffers
2014-05-06 11:52:59 -07:00
James Coglan
d93c853414
Don't pre-allocate a huge Buffer before we know there's enough chunks in the read queue to complete a message.
2013-12-02 21:07:33 +00:00
James Coglan
25c075a408
Rename the module to websocket-driver.
2013-05-04 16:42:44 +01:00