websocket-driver 0.6.5-java → 0.7.0-java
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 +5 -5
- data/CHANGELOG.md +4 -0
- data/LICENSE.md +1 -3
- data/README.md +11 -0
- data/lib/websocket/driver.rb +2 -0
- data/lib/websocket/driver/hybi.rb +2 -0
- data/lib/websocket_mask.jar +0 -0
- metadata +14 -15
- data/examples/tcp_server.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 56ae9057b4d473ec55363da2309322999d71f5be9e457d4d94cc6b40c0bbaac5
|
4
|
+
data.tar.gz: 2cb85005552be8596408bba185073e008734dc0b0240fe7382690212a5818eb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90ffb3c5ae767a18488af3c42ce24656a8ac1bf799cb7ed37f6dda09b27f438c25f8db01d8507793007d8940354c9800b2363c4dabf1636136f515af50e6b574
|
7
|
+
data.tar.gz: 7842519e1eb00bdff05c1dcc5d6b916430c82d9becf54ac21eec4bee482c234642472ee3b624d4d4c59ee48c0d7c930e108a32f33ba281a4a81bab515cd474ed
|
data/CHANGELOG.md
CHANGED
data/LICENSE.md
CHANGED
data/README.md
CHANGED
@@ -295,6 +295,17 @@ describing the error.
|
|
295
295
|
Adds a callback block to execute when the socket becomes closed. The `event`
|
296
296
|
object has `code` and `reason` attributes.
|
297
297
|
|
298
|
+
#### `driver.on :ping, -> (event) { }`
|
299
|
+
|
300
|
+
Adds a callback block to execute when a ping is received. You do not need to
|
301
|
+
handle this by sending a pong frame yourself; the driver handles this for you.
|
302
|
+
|
303
|
+
#### `driver.on :pong, -> (event) { }`
|
304
|
+
|
305
|
+
Adds a callback block to execute when a pong is received. If this was in
|
306
|
+
response to a ping you sent, you can also handle this event via the
|
307
|
+
`driver.ping(message) { ... }` callback.
|
308
|
+
|
298
309
|
#### `driver.add_extension(extension)`
|
299
310
|
|
300
311
|
Registers a protocol extension whose operation will be negotiated via the
|
data/lib/websocket/driver.rb
CHANGED
@@ -50,6 +50,8 @@ module WebSocket
|
|
50
50
|
ConnectEvent = Struct.new(nil)
|
51
51
|
OpenEvent = Struct.new(nil)
|
52
52
|
MessageEvent = Struct.new(:data)
|
53
|
+
PingEvent = Struct.new(:data)
|
54
|
+
PongEvent = Struct.new(:data)
|
53
55
|
CloseEvent = Struct.new(:code, :reason)
|
54
56
|
|
55
57
|
ProtocolError = Class.new(StandardError)
|
@@ -368,12 +368,14 @@ module WebSocket
|
|
368
368
|
|
369
369
|
when OPCODES[:ping] then
|
370
370
|
frame(payload, :pong)
|
371
|
+
emit(:ping, PingEvent.new(payload))
|
371
372
|
|
372
373
|
when OPCODES[:pong] then
|
373
374
|
message = Driver.encode(payload, UNICODE)
|
374
375
|
callback = @ping_callbacks[message]
|
375
376
|
@ping_callbacks.delete(message)
|
376
377
|
callback.call if callback
|
378
|
+
emit(:pong, PongEvent.new(payload))
|
377
379
|
end
|
378
380
|
|
379
381
|
emit_message if frame.final and MESSAGE_OPCODES.include?(opcode)
|
data/lib/websocket_mask.jar
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: websocket-driver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- James Coglan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: websocket-extensions
|
15
|
-
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.1.0
|
20
|
-
|
20
|
+
version_requirements: !ruby/object:Gem::Requirement
|
21
21
|
requirements:
|
22
22
|
- - ">="
|
23
23
|
- !ruby/object:Gem::Version
|
@@ -26,12 +26,12 @@ dependencies:
|
|
26
26
|
type: :runtime
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: eventmachine
|
29
|
-
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
|
-
|
34
|
+
version_requirements: !ruby/object:Gem::Requirement
|
35
35
|
requirements:
|
36
36
|
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
@@ -40,12 +40,12 @@ dependencies:
|
|
40
40
|
type: :development
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: permessage_deflate
|
43
|
-
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
|
-
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
49
49
|
requirements:
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
@@ -54,12 +54,12 @@ dependencies:
|
|
54
54
|
type: :development
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake-compiler
|
57
|
-
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 0.8.0
|
62
|
-
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
@@ -68,12 +68,12 @@ dependencies:
|
|
68
68
|
type: :development
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
|
-
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
78
|
- - ">="
|
79
79
|
- !ruby/object:Gem::Version
|
@@ -90,7 +90,6 @@ files:
|
|
90
90
|
- CHANGELOG.md
|
91
91
|
- LICENSE.md
|
92
92
|
- README.md
|
93
|
-
- examples/tcp_server.rb
|
94
93
|
- ext/websocket-driver/WebsocketMaskService.java
|
95
94
|
- ext/websocket-driver/extconf.rb
|
96
95
|
- ext/websocket-driver/websocket_mask.c
|
@@ -113,7 +112,7 @@ files:
|
|
113
112
|
- lib/websocket/mask.rb
|
114
113
|
- lib/websocket/websocket_mask.rb
|
115
114
|
- lib/websocket_mask.jar
|
116
|
-
homepage:
|
115
|
+
homepage: https://github.com/faye/websocket-driver-ruby
|
117
116
|
licenses:
|
118
117
|
- MIT
|
119
118
|
metadata: {}
|
@@ -137,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
136
|
version: '0'
|
138
137
|
requirements: []
|
139
138
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
139
|
+
rubygems_version: 2.6.11
|
141
140
|
signing_key:
|
142
141
|
specification_version: 4
|
143
142
|
summary: WebSocket protocol handler with pluggable I/O
|
data/examples/tcp_server.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler/setup'
|
3
|
-
require 'eventmachine'
|
4
|
-
require 'websocket/driver'
|
5
|
-
require 'permessage_deflate'
|
6
|
-
|
7
|
-
module Connection
|
8
|
-
def initialize
|
9
|
-
@driver = WebSocket::Driver.server(self)
|
10
|
-
@driver.add_extension(PermessageDeflate)
|
11
|
-
|
12
|
-
@driver.on(:connect) { |e| @driver.start if WebSocket::Driver.websocket? @driver.env }
|
13
|
-
@driver.on(:message) { |e| @driver.frame(e.data) }
|
14
|
-
@driver.on(:close) { |e| close_connection_after_writing }
|
15
|
-
end
|
16
|
-
|
17
|
-
def receive_data(data)
|
18
|
-
@driver.parse(data)
|
19
|
-
end
|
20
|
-
|
21
|
-
def write(data)
|
22
|
-
send_data(data)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
EM.run {
|
27
|
-
EM.start_server('127.0.0.1', ARGV[0], Connection)
|
28
|
-
}
|