Skip to content

Commit

Permalink
Change markdown formatting of docs.
Browse files Browse the repository at this point in the history
  • Loading branch information
jcoglan committed May 29, 2019
1 parent 019ba71 commit a6bb6a6
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 65 deletions.
91 changes: 46 additions & 45 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,127 +1,128 @@
### 0.7.0 / 2017-09-11

* Add `ping` and `pong` to the set of events users can listen to
- Add `ping` and `pong` to the set of events users can listen to

### 0.6.5 / 2017-01-22

* Provide a pure-Ruby fallback for the native unmasking code
- Provide a pure-Ruby fallback for the native unmasking code

### 0.6.4 / 2016-05-20

* Amend warnings issued when running with -W2
* Make sure message strings passed in by the app are transcoded to UTF-8
* Copy strings if necessary for frozen-string compatibility
- Amend warnings issued when running with -W2
- Make sure message strings passed in by the app are transcoded to UTF-8
- Copy strings if necessary for frozen-string compatibility

### 0.6.3 / 2015-11-06

* 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
- 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

### 0.6.2 / 2015-07-18

* When the peer sends a close frame with no error code, emit 1000
- When the peer sends a close frame with no error code, emit 1000

### 0.6.1 / 2015-07-13

* Fix how events are stored in `EventEmitter` to fix a backward-compatibility
- Fix how events are stored in `EventEmitter` to fix a backward-compatibility
violation introduced in the last release
* Use the `Array#pack` and `String#unpack` methods for reading/writing numbers
- Use the `Array#pack` and `String#unpack` methods for reading/writing numbers
to buffers rather than including duplicate logic for this

### 0.6.0 / 2015-07-08

* Use `SecureRandom` to generate the `Sec-WebSocket-Key` header
* Allow the parser to recover cleanly if event listeners raise an error
* Let the `on()` method take a lambda as a positional argument rather than a block
* Add a `pong` method for sending unsolicited pong frames
- Use `SecureRandom` to generate the `Sec-WebSocket-Key` header
- Allow the parser to recover cleanly if event listeners raise an error
- Let the `on()` method take a lambda as a positional argument rather than a
block
- Add a `pong` method for sending unsolicited pong frames

### 0.5.4 / 2015-03-29

* Don't emit extra close frames if we receive a close frame after we already
- 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
- Fail the connection when the driver receives an invalid
`Sec-WebSocket-Extensions` header

### 0.5.3 / 2015-02-22

* Don't treat incoming data as WebSocket frames if a client driver is closed
- Don't treat incoming data as WebSocket frames if a client driver is closed
before receiving the server handshake

### 0.5.2 / 2015-02-19

* Don't emit multiple `error` events
- Don't emit multiple `error` events

### 0.5.1 / 2014-12-18

* Don't allow drivers to be created with unrecognized options
- Don't allow drivers to be created with unrecognized options

### 0.5.0 / 2014-12-13

* Support protocol extensions via the websocket-extensions module
- Support protocol extensions via the websocket-extensions module

### 0.4.0 / 2014-11-08

* Support connection via HTTP proxies using `CONNECT`
- Support connection via HTTP proxies using `CONNECT`

### 0.3.5 / 2014-10-04

* Fix bug where the `Server` driver doesn't pass `ping` callbacks to its
- Fix bug where the `Server` driver doesn't pass `ping` callbacks to its
delegate
* Fix an arity error when calling `fail_request`
* Allow `close` to be called before `start` to close the driver
- Fix an arity error when calling `fail_request`
- Allow `close` to be called before `start` to close the driver

### 0.3.4 / 2014-07-06

* Don't hold references to frame buffers after a message has been emitted
* Make sure that `protocol` and `version` are exposed properly by the TCP driver
* Correct HTTP header parsing based on RFC 7230; header names cannot contain
- Don't hold references to frame buffers after a message has been emitted
- Make sure that `protocol` and `version` are exposed properly by the TCP driver
- Correct HTTP header parsing based on RFC 7230; header names cannot contain
backslashes

### 0.3.3 / 2014-04-24

* Fix problems with loading C and Java native extension code
* Correct the acceptable characters used in the HTTP parser
* Correct the draft-76 status line reason phrase
- Fix problems with loading C and Java native extension code
- Correct the acceptable characters used in the HTTP parser
- Correct the draft-76 status line reason phrase

### 0.3.2 / 2013-12-29

* Expand `max_length` to cover sequences of continuation frames and
- Expand `max_length` to cover sequences of continuation frames and
`draft-{75,76}`
* Decrease default maximum frame buffer size to 64MB
* Stop parsing when the protocol enters a failure mode, to save CPU cycles
- Decrease default maximum frame buffer size to 64MB
- Stop parsing when the protocol enters a failure mode, to save CPU cycles

### 0.3.1 / 2013-12-03

* Add a `max_length` option to limit allowed frame size
- Add a `max_length` option to limit allowed frame size

### 0.3.0 / 2013-09-09

* Support client URLs with Basic Auth credentials
- Support client URLs with Basic Auth credentials

### 0.2.3 / 2013-08-04

* Fix bug in EventEmitter#emit when listeners are removed
- Fix bug in EventEmitter#emit when listeners are removed

### 0.2.2 / 2013-08-04

* Fix bug in EventEmitter#listener_count for unregistered events
- Fix bug in EventEmitter#listener_count for unregistered events

### 0.2.1 / 2013-07-05

* Queue sent messages if the client has not begun trying to connect
* Encode all strings sent to I/O as `ASCII-8BIT`
- Queue sent messages if the client has not begun trying to connect
- Encode all strings sent to I/O as `ASCII-8BIT`

### 0.2.0 / 2013-05-12

* Add API for setting and reading headers
* Add Driver.server() method for getting a driver for TCP servers
- Add API for setting and reading headers
- Add Driver.server() method for getting a driver for TCP servers

### 0.1.0 / 2013-05-04

* First stable release
- First stable release

### 0.0.0 / 2013-04-22

* First release
* Proof of concept for people to try out
* Might be unstable
- First release
- Proof of concept for people to try out
- Might be unstable
40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@ pluggable I/O.
Due to this design, you get a lot of things for free. In particular, if you hook
this module up to some I/O object, it will do all of this for you:

* Select the correct server-side driver to talk to the client
* Generate and send both server- and client-side handshakes
* Recognize when the handshake phase completes and the WS protocol begins
* Negotiate subprotocol selection based on `Sec-WebSocket-Protocol`
* Negotiate and use extensions via the
- Select the correct server-side driver to talk to the client
- Generate and send both server- and client-side handshakes
- Recognize when the handshake phase completes and the WS protocol begins
- Negotiate subprotocol selection based on `Sec-WebSocket-Protocol`
- Negotiate and use extensions via the
[websocket-extensions](https://github.com/faye/websocket-extensions-ruby)
module
* Buffer sent messages until the handshake process is finished
* Deal with proxies that defer delivery of the draft-76 handshake body
* Notify you when the socket is open and closed and when messages arrive
* Recombine fragmented messages
* Dispatch text, binary, ping, pong and close frames
* Manage the socket-closing handshake process
* Automatically reply to ping frames with a matching pong
* Apply masking to messages sent by the client
- Buffer sent messages until the handshake process is finished
- Deal with proxies that defer delivery of the draft-76 handshake body
- Notify you when the socket is open and closed and when messages arrive
- Recombine fragmented messages
- Dispatch text, binary, ping, pong and close frames
- Manage the socket-closing handshake process
- Automatically reply to ping frames with a matching pong
- Apply masking to messages sent by the client

This library was originally extracted from the [Faye](http://faye.jcoglan.com)
project but now aims to provide simple WebSocket support for any Ruby server or
Expand All @@ -43,12 +43,12 @@ $ gem install websocket-driver
To build either a server-side or client-side socket, the only requirement is
that you supply a `socket` object with these methods:

* `socket.url` - returns the full URL of the socket as a string.
* `socket.write(string)` - writes the given string to a TCP stream.
- `socket.url` - returns the full URL of the socket as a string.
- `socket.write(string)` - writes the given string to a TCP stream.

Server-side sockets require one additional method:

* `socket.env` - returns a Rack-style env hash that will contain some of the
- `socket.env` - returns a Rack-style env hash that will contain some of the
following fields. Their values are strings containing the value of the named
header, unless stated otherwise.
* `HTTP_CONNECTION`
Expand Down Expand Up @@ -193,8 +193,8 @@ and send outgoing data.
Client drivers have two additional methods for reading the HTTP data that was
sent back by the server:

* `driver.status` - the integer value of the HTTP status code
* `driver.headers` - a hash-like object containing the response headers
- `driver.status` - the integer value of the HTTP status code
- `driver.headers` - a hash-like object containing the response headers


### HTTP Proxies
Expand Down Expand Up @@ -261,9 +261,9 @@ frames.
The `options` argument is optional, and is a hash. It may contain the following
keys:

* `:max_length` - the maximum allowed size of incoming message frames, in bytes.
- `:max_length` - the maximum allowed size of incoming message frames, in bytes.
The default value is `2^26 - 1`, or 1 byte short of 64 MiB.
* `:protocols` - an array of strings representing acceptable subprotocols for
- `:protocols` - an array of strings representing acceptable subprotocols for
use over the socket. The driver will negotiate one of these to use via the
`Sec-WebSocket-Protocol` header if supported by the other peer.

Expand Down

0 comments on commit a6bb6a6

Please sign in to comment.