websocket-driver 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -3
- data/README.md +1 -1
- data/lib/websocket/driver.rb +3 -1
- data/lib/websocket/driver/hybi.rb +8 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 653c1d2f3e93b56720caa2628bb9164d9870a3cf
|
4
|
+
data.tar.gz: 3fe00f429a75159cc5c5b6f5104a1a5a8e792e89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7692a1e01a589de14fc6be0992333f2664b8500bbd23ef0c5e182eb17201ba3f0f1ea0d877e3f7907c4e1bac300ca705c0fd363c02a40948478ad2b15f91e065
|
7
|
+
data.tar.gz: 1d994b02ccd3ad8b4a560863f272a24daba29cee2a89f02e7e5d48591ba0a17aaf80000fa223cf948e556951502b5ff4f607cca50d55e594314eb6363d505c43
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
### 0.5.4 / 2015-03-29
|
2
|
+
|
3
|
+
* Don't emit extra close frames if we receive a close frame after we already
|
4
|
+
sent one
|
5
|
+
* Fail the connection when the driver receives an invalid
|
6
|
+
`Sec-WebSocket-Extensions` header
|
7
|
+
|
1
8
|
### 0.5.3 / 2015-02-22
|
2
9
|
|
3
10
|
* Don't treat incoming data as WebSocket frames if a client driver is closed
|
@@ -21,7 +28,8 @@
|
|
21
28
|
|
22
29
|
### 0.3.5 / 2014-10-04
|
23
30
|
|
24
|
-
* Fix bug where the `Server` driver doesn't pass `ping` callbacks to its
|
31
|
+
* Fix bug where the `Server` driver doesn't pass `ping` callbacks to its
|
32
|
+
delegate
|
25
33
|
* Fix an arity error when calling `fail_request`
|
26
34
|
* Allow `close` to be called before `start` to close the driver
|
27
35
|
|
@@ -29,7 +37,8 @@
|
|
29
37
|
|
30
38
|
* Don't hold references to frame buffers after a message has been emitted
|
31
39
|
* Make sure that `protocol` and `version` are exposed properly by the TCP driver
|
32
|
-
* Correct HTTP header parsing based on RFC 7230; header names cannot contain
|
40
|
+
* Correct HTTP header parsing based on RFC 7230; header names cannot contain
|
41
|
+
backslashes
|
33
42
|
|
34
43
|
### 0.3.3 / 2014-04-24
|
35
44
|
|
@@ -39,7 +48,8 @@
|
|
39
48
|
|
40
49
|
### 0.3.2 / 2013-12-29
|
41
50
|
|
42
|
-
* Expand `max_length` to cover sequences of continuation frames and
|
51
|
+
* Expand `max_length` to cover sequences of continuation frames and
|
52
|
+
`draft-{75,76}`
|
43
53
|
* Decrease default maximum frame buffer size to 64MB
|
44
54
|
* Stop parsing when the protocol enters a failure mode, to save CPU cycles
|
45
55
|
|
data/README.md
CHANGED
@@ -311,7 +311,7 @@ the headers are serialized and sent.
|
|
311
311
|
|
312
312
|
Initiates the protocol by sending the handshake - either the response for a
|
313
313
|
server-side driver or the request for a client-side one. This should be the
|
314
|
-
first method you invoke. Returns `true`
|
314
|
+
first method you invoke. Returns `true` if and only if a handshake was sent.
|
315
315
|
|
316
316
|
#### `driver.parse(string)`
|
317
317
|
|
data/lib/websocket/driver.rb
CHANGED
@@ -89,7 +89,9 @@ module WebSocket
|
|
89
89
|
|
90
90
|
def start
|
91
91
|
return false unless @ready_state == 0
|
92
|
-
|
92
|
+
response = handshake_response
|
93
|
+
return false unless response
|
94
|
+
@socket.write(Driver.encode(response, :binary))
|
93
95
|
open unless @stage == -1
|
94
96
|
true
|
95
97
|
end
|
@@ -237,7 +237,13 @@ module WebSocket
|
|
237
237
|
end
|
238
238
|
|
239
239
|
def handshake_response
|
240
|
-
|
240
|
+
begin
|
241
|
+
extensions = @extensions.generate_response(@socket.env['HTTP_SEC_WEBSOCKET_EXTENSIONS'])
|
242
|
+
rescue => e
|
243
|
+
fail(:protocol_error, e.message)
|
244
|
+
return nil
|
245
|
+
end
|
246
|
+
|
241
247
|
@headers['Sec-WebSocket-Extensions'] = extensions if extensions
|
242
248
|
|
243
249
|
start = 'HTTP/1.1 101 Switching Protocols'
|
@@ -246,7 +252,7 @@ module WebSocket
|
|
246
252
|
end
|
247
253
|
|
248
254
|
def shutdown(code, reason)
|
249
|
-
frame(reason, :close, code)
|
255
|
+
frame(reason, :close, code) if @ready_state < 2
|
250
256
|
@frame = @message = nil
|
251
257
|
@ready_state = 3
|
252
258
|
@stage = 5
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: websocket-driver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Coglan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: websocket-extensions
|