- Avoid crashing if
process.version
does not contain any digits - Emit
ping
andpong
events from theServer
driver - Require http-parser-js >=0.5.1 which fixes the bug we addressed in 0.7.3
- Cap version of http-parser-js below 0.4.11, which introduced a bug that prevents us from handling messages that are part of the same input buffer as the handshake response if chunked encoding is specified
(This version was pulled due to an error when publishing)
- Catch any exceptions produced while generating a handshake response and send a
400 Bad Request
response to the client - Pick the RFC-6455 protocol version if the request contains any of the headers used by that version
- Use the
Buffer.alloc()
andBuffer.from()
functions instead of the unsafeBuffer()
constructor - Handle errors encountered while handling malformed draft-76 requests
- Change license from MIT to Apache 2.0
- Add
ping
andpong
to the set of events users can listen to - Replace the bindings to Node's HTTP parser with
http-parser-js
- Don't mutate buffers passed in by the application when masking
- If a number is given as input for a frame payload, send it as a string
- Reject draft-76 handshakes if their Sec-WebSocket-Key headers are invalid
- Throw a more helpful error if a client is created with an invalid URL
- When the peer sends a close frame with no error code, emit 1000
- Use the
buffer.{read,write}UInt{16,32}BE
methods for reading/writing numbers to buffers rather than including duplicate logic for this
- Allow the parser to recover cleanly if event listeners raise an error
- Add a
pong
method for sending unsolicited pong frames
- Don't emit extra close frames if we receive a close frame after we already sent one
- Fail the connection when the driver receives an invalid
Sec-WebSocket-Extensions
header
- Don't treat incoming data as WebSocket frames if a client driver is closed before receiving the server handshake
- Fix compatibility with the HTTP parser on io.js
- Use
websocket-extensions
to make sure messages and close frames are kept in order - Don't emit multiple
error
events
- Don't allow drivers to be created with unrecognized options
- Support protocol extensions via the websocket-extensions module
- Support connection via HTTP proxies using
CONNECT
- It is now possible to call
close()
beforestart()
and close the driver
- Don't hold references to frame buffers after a message has been emitted
- Make sure that
protocol
andversion
are exposed properly by the TCP driver
- Don't hold memory-leaking references to I/O buffers after they have been parsed
- Correct the draft-76 status line reason phrase
- Expand
maxLength
to cover sequences of continuation frames anddraft-{75,76}
- Decrease default maximum frame buffer size to 64MB
- Stop parsing when the protocol enters a failure mode, to save CPU cycles
- Add a
maxLength
option to limit allowed frame size - Don't pre-allocate a message buffer until the whole frame has arrived
- Fix compatibility with Node v0.11
HTTPParser
- Support client URLs with Basic Auth credentials
- No functional changes, just updates to package.json
- Export the isSecureRequest() method since faye-websocket relies on it
- Queue sent messages in the client's initial state
- Add API for setting and reading headers
- Add Driver.server() method for getting a driver for TCP servers
- First stable release