faye-websocket 0.4.6-java → 0.4.7-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.
Potentially problematic release.
This version of faye-websocket might be problematic. Click here for more details.
- data/CHANGELOG.txt +7 -0
- data/README.rdoc +24 -24
- data/examples/app.rb +10 -10
- data/examples/autobahn_client.rb +16 -11
- data/examples/client.rb +4 -4
- data/examples/config.ru +3 -3
- data/examples/sse.html +8 -8
- data/examples/ws.html +8 -8
- data/ext/faye_websocket_mask/FayeWebsocketMaskService.java +7 -7
- data/ext/faye_websocket_mask/faye_websocket_mask.c +2 -2
- data/lib/faye/adapters/goliath.rb +5 -5
- data/lib/faye/adapters/rainbows.rb +3 -3
- data/lib/faye/adapters/rainbows_client.rb +12 -12
- data/lib/faye/adapters/thin.rb +10 -9
- data/lib/faye/eventsource.rb +26 -26
- data/lib/faye/websocket.rb +40 -40
- data/lib/faye/websocket/adapter.rb +5 -5
- data/lib/faye/websocket/api.rb +28 -25
- data/lib/faye/websocket/api/event.rb +7 -7
- data/lib/faye/websocket/api/event_target.rb +8 -8
- data/lib/faye/websocket/client.rb +18 -18
- data/lib/faye/websocket/draft75_parser.rb +13 -13
- data/lib/faye/websocket/draft76_parser.rb +17 -17
- data/lib/faye/websocket/hybi_parser.rb +4 -4
- data/lib/faye/websocket/utf8_match.rb +2 -2
- data/lib/faye_websocket_mask.jar +0 -0
- data/spec/faye/websocket/client_spec.rb +32 -49
- data/spec/faye/websocket/draft75_parser_examples.rb +7 -7
- data/spec/faye/websocket/draft75_parser_spec.rb +4 -4
- data/spec/faye/websocket/draft76_parser_spec.rb +5 -5
- data/spec/spec_helper.rb +4 -4
- metadata +162 -122
@@ -50,7 +50,7 @@ module Faye
|
|
50
50
|
@masking = options[:masking]
|
51
51
|
@protocols = options[:protocols]
|
52
52
|
@protocols = @protocols.split(/\s*,\s*/) if String === @protocols
|
53
|
-
|
53
|
+
|
54
54
|
@ping_callbacks = {}
|
55
55
|
end
|
56
56
|
|
@@ -89,11 +89,11 @@ module Faye
|
|
89
89
|
def create_handshake
|
90
90
|
Handshake.new(@socket.uri, @protocols)
|
91
91
|
end
|
92
|
-
|
92
|
+
|
93
93
|
def open?
|
94
94
|
true
|
95
95
|
end
|
96
|
-
|
96
|
+
|
97
97
|
def parse(data)
|
98
98
|
@reader.put(data.bytes.to_a)
|
99
99
|
buffer = true
|
@@ -178,7 +178,7 @@ module Faye
|
|
178
178
|
|
179
179
|
WebSocket.encode(frame)
|
180
180
|
end
|
181
|
-
|
181
|
+
|
182
182
|
def ping(message = '', &callback)
|
183
183
|
@ping_callbacks[message] = callback if callback
|
184
184
|
@socket.send(message, :ping)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Faye
|
2
2
|
class WebSocket
|
3
|
-
|
3
|
+
|
4
4
|
# http://www.w3.org/International/questions/qa-forms-utf-8.en.php
|
5
5
|
UTF8_MATCH = /^([\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})*$/
|
6
|
-
|
6
|
+
|
7
7
|
end
|
8
8
|
end
|
data/lib/faye_websocket_mask.jar
CHANGED
Binary file
|
@@ -9,15 +9,15 @@ WebSocketSteps = EM::RSpec.async_steps do
|
|
9
9
|
@port = port
|
10
10
|
EM.add_timer(0.1, &callback)
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def stop(&callback)
|
14
14
|
@server.stop
|
15
15
|
EM.next_tick(&callback)
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def open_socket(url, protocols, &callback)
|
19
19
|
done = false
|
20
|
-
|
20
|
+
|
21
21
|
resume = lambda do |open|
|
22
22
|
unless done
|
23
23
|
done = true
|
@@ -25,13 +25,13 @@ WebSocketSteps = EM::RSpec.async_steps do
|
|
25
25
|
callback.call
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
@ws = Faye::WebSocket::Client.new(url, protocols)
|
30
|
-
|
30
|
+
|
31
31
|
@ws.onopen = lambda { |e| resume.call(true) }
|
32
32
|
@ws.onclose = lambda { |e| resume.call(false) }
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def close_socket(&callback)
|
36
36
|
@ws.onclose = lambda do |e|
|
37
37
|
@open = false
|
@@ -39,37 +39,37 @@ WebSocketSteps = EM::RSpec.async_steps do
|
|
39
39
|
end
|
40
40
|
@ws.close
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
def check_open(&callback)
|
44
44
|
@open.should == true
|
45
45
|
callback.call
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
def check_closed(&callback)
|
49
49
|
@open.should == false
|
50
50
|
callback.call
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
def check_protocol(protocol, &callback)
|
54
54
|
@ws.protocol.should == protocol
|
55
55
|
callback.call
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
def listen_for_message(&callback)
|
59
59
|
@ws.add_event_listener('message', lambda { |e| @message = e.data })
|
60
60
|
callback.call
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
def send_message(message, &callback)
|
64
64
|
@ws.send(message)
|
65
65
|
EM.add_timer(0.1, &callback)
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
def check_response(message, &callback)
|
69
69
|
@message.should == message
|
70
70
|
callback.call
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def check_no_response(&callback)
|
74
74
|
@message.should == nil
|
75
75
|
callback.call
|
@@ -79,61 +79,56 @@ end
|
|
79
79
|
describe Faye::WebSocket::Client do
|
80
80
|
next if Faye::WebSocket.jruby?
|
81
81
|
include WebSocketSteps
|
82
|
-
|
82
|
+
|
83
83
|
let(:protocols) { ["foo", "echo"] }
|
84
84
|
let(:plain_text_url) { "ws://0.0.0.0:8000/" }
|
85
85
|
let(:secure_url) { "wss://0.0.0.0:8000/" }
|
86
|
-
|
87
|
-
before do
|
88
|
-
Thread.new { EM.run }
|
89
|
-
sleep(0.1) until EM.reactor_running?
|
90
|
-
end
|
91
|
-
|
86
|
+
|
92
87
|
shared_examples_for "socket client" do
|
93
88
|
it "can open a connection" do
|
94
89
|
open_socket(socket_url, protocols)
|
95
90
|
check_open
|
96
91
|
check_protocol("echo")
|
97
92
|
end
|
98
|
-
|
93
|
+
|
99
94
|
it "cannot open a connection to the wrong host" do
|
100
95
|
open_socket(blocked_url, protocols)
|
101
96
|
check_closed
|
102
97
|
end
|
103
|
-
|
98
|
+
|
104
99
|
it "cannot open a connection with unacceptable protocols" do
|
105
100
|
open_socket(socket_url, ["foo"])
|
106
101
|
check_closed
|
107
102
|
end
|
108
|
-
|
103
|
+
|
109
104
|
it "can close the connection" do
|
110
105
|
open_socket(socket_url, protocols)
|
111
106
|
close_socket
|
112
107
|
check_closed
|
113
108
|
end
|
114
|
-
|
109
|
+
|
115
110
|
describe "in the OPEN state" do
|
116
111
|
before { open_socket(socket_url, protocols) }
|
117
|
-
|
112
|
+
|
118
113
|
it "can send and receive messages" do
|
119
114
|
listen_for_message
|
120
115
|
send_message "I expect this to be echoed"
|
121
116
|
check_response "I expect this to be echoed"
|
122
117
|
end
|
123
|
-
|
118
|
+
|
124
119
|
it "sends numbers as strings" do
|
125
120
|
listen_for_message
|
126
121
|
send_message 13
|
127
122
|
check_response "13"
|
128
123
|
end
|
129
124
|
end
|
130
|
-
|
125
|
+
|
131
126
|
describe "in the CLOSED state" do
|
132
127
|
before do
|
133
128
|
open_socket(socket_url, protocols)
|
134
129
|
close_socket
|
135
130
|
end
|
136
|
-
|
131
|
+
|
137
132
|
it "cannot send and receive messages" do
|
138
133
|
listen_for_message
|
139
134
|
send_message "I expect this to be echoed"
|
@@ -141,38 +136,26 @@ describe Faye::WebSocket::Client do
|
|
141
136
|
end
|
142
137
|
end
|
143
138
|
end
|
144
|
-
|
139
|
+
|
145
140
|
describe "with a plain-text Thin server" do
|
146
141
|
let(:socket_url) { plain_text_url }
|
147
142
|
let(:blocked_url) { secure_url }
|
148
|
-
|
143
|
+
|
149
144
|
before { server 8000, :thin, false }
|
150
|
-
after {
|
151
|
-
|
152
|
-
it_should_behave_like "socket client"
|
153
|
-
end
|
154
|
-
|
155
|
-
describe "with a plain-text Rainbows server" do
|
156
|
-
next if Faye::WebSocket.rbx?
|
157
|
-
|
158
|
-
let(:socket_url) { plain_text_url }
|
159
|
-
let(:blocked_url) { secure_url }
|
160
|
-
|
161
|
-
before { server 8000, :rainbows, false }
|
162
|
-
after { sync ; stop }
|
163
|
-
|
145
|
+
after { stop }
|
146
|
+
|
164
147
|
it_should_behave_like "socket client"
|
165
148
|
end
|
166
|
-
|
149
|
+
|
167
150
|
describe "with a secure Thin server" do
|
168
151
|
next if Faye::WebSocket.rbx?
|
169
|
-
|
152
|
+
|
170
153
|
let(:socket_url) { secure_url }
|
171
154
|
let(:blocked_url) { plain_text_url }
|
172
|
-
|
155
|
+
|
173
156
|
before { server 8000, :thin, true }
|
174
|
-
after {
|
175
|
-
|
157
|
+
after { stop }
|
158
|
+
|
176
159
|
it_should_behave_like "socket client"
|
177
160
|
end
|
178
161
|
end
|
@@ -7,38 +7,38 @@ shared_examples_for "draft-75 parser" do
|
|
7
7
|
@web_socket.should_receive(:receive).with("Hello")
|
8
8
|
parse [0x00, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0xff]
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
it "parses multiple frames from the same packet" do
|
12
12
|
@web_socket.should_receive(:receive).with("Hello").exactly(2)
|
13
13
|
parse [0x00, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0xff, 0x00, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0xff]
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
it "parses text frames beginning 0x00-0x7F" do
|
17
17
|
@web_socket.should_receive(:receive).with("Hello")
|
18
18
|
parse [0x66, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0xff]
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "ignores frames with a length header" do
|
22
22
|
@web_socket.should_not_receive(:receive)
|
23
23
|
parse [0x80, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f]
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
it "parses text following an ignored block" do
|
27
27
|
@web_socket.should_receive(:receive).with("Hello")
|
28
28
|
parse [0x80, 0x02, 0x48, 0x65, 0x00, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0xff]
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
it "parses multibyte text frames" do
|
32
32
|
@web_socket.should_receive(:receive).with(encode "Apple = ")
|
33
33
|
parse [0x00, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0xef, 0xa3, 0xbf, 0xff]
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
it "parses frames received in several packets" do
|
37
37
|
@web_socket.should_receive(:receive).with(encode "Apple = ")
|
38
38
|
parse [0x00, 0x41, 0x70, 0x70, 0x6c, 0x65]
|
39
39
|
parse [0x20, 0x3d, 0x20, 0xef, 0xa3, 0xbf, 0xff]
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
it "parses fragmented frames" do
|
43
43
|
@web_socket.should_receive(:receive).with("Hello")
|
44
44
|
parse [0x00, 0x48, 0x65, 0x6c]
|
@@ -4,21 +4,21 @@ require "spec_helper"
|
|
4
4
|
|
5
5
|
describe Faye::WebSocket::Draft75Parser do
|
6
6
|
include EncodingHelper
|
7
|
-
|
7
|
+
|
8
8
|
before do
|
9
9
|
@web_socket = mock Faye::WebSocket
|
10
10
|
@parser = Faye::WebSocket::Draft75Parser.new(@web_socket)
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
describe :parse do
|
14
14
|
it_should_behave_like "draft-75 parser"
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
describe :frame do
|
18
18
|
it "returns the given string formatted as a WebSocket frame" do
|
19
19
|
bytes(@parser.frame "Hello").should == [0x00, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0xff]
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
it "encodes multibyte characters correctly" do
|
23
23
|
message = encode "Apple = "
|
24
24
|
bytes(@parser.frame message).should == [0x00, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0xef, 0xa3, 0xbf, 0xff]
|
@@ -4,27 +4,27 @@ require "spec_helper"
|
|
4
4
|
|
5
5
|
describe Faye::WebSocket::Draft76Parser do
|
6
6
|
include EncodingHelper
|
7
|
-
|
7
|
+
|
8
8
|
before do
|
9
9
|
@web_socket = mock Faye::WebSocket
|
10
10
|
@parser = Faye::WebSocket::Draft76Parser.new(@web_socket)
|
11
11
|
@parser.instance_eval { @handshake_complete = true }
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
describe :parse do
|
15
15
|
it_should_behave_like "draft-75 parser"
|
16
|
-
|
16
|
+
|
17
17
|
it "closes the socket if a close frame is received" do
|
18
18
|
@web_socket.should_receive(:close)
|
19
19
|
parse [0xFF, 0x00]
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
describe :frame do
|
24
24
|
it "returns the given string formatted as a WebSocket frame" do
|
25
25
|
bytes(@parser.frame "Hello").should == [0x00, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0xff]
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "encodes multibyte characters correctly" do
|
29
29
|
message = encode "Apple = "
|
30
30
|
bytes(@parser.frame message).should == [0x00, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0xef, 0xa3, 0xbf, 0xff]
|
data/spec/spec_helper.rb
CHANGED
@@ -18,11 +18,11 @@ module EncodingHelper
|
|
18
18
|
message.force_encoding("UTF-8") :
|
19
19
|
message
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
def bytes(string)
|
23
23
|
string.bytes.to_a
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def parse(bytes)
|
27
27
|
@parser.parse(bytes.pack('C*'))
|
28
28
|
end
|
@@ -36,7 +36,7 @@ class EchoServer
|
|
36
36
|
end
|
37
37
|
socket.rack_response
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
def listen(port, backend, ssl = false)
|
41
41
|
case backend
|
42
42
|
when :rainbows
|
@@ -60,7 +60,7 @@ class EchoServer
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
def stop
|
65
65
|
@server.stop
|
66
66
|
end
|
metadata
CHANGED
@@ -1,137 +1,177 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: faye-websocket
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
version: 0.4.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.4.7
|
6
6
|
platform: java
|
7
|
-
authors:
|
8
|
-
|
9
|
-
autorequire:
|
7
|
+
authors:
|
8
|
+
- James Coglan
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
12
|
+
date: 2013-02-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: eventmachine
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 0.12.0
|
21
|
+
none: false
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.12.0
|
27
|
+
none: false
|
28
|
+
prerelease: false
|
29
|
+
type: :runtime
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: progressbar
|
32
|
+
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: !binary |-
|
37
|
+
MA==
|
38
|
+
none: false
|
39
|
+
requirement: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: !binary |-
|
44
|
+
MA==
|
45
|
+
none: false
|
46
|
+
prerelease: false
|
47
|
+
type: :development
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rack
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: !binary |-
|
55
|
+
MA==
|
56
|
+
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: !binary |-
|
62
|
+
MA==
|
63
|
+
none: false
|
64
|
+
prerelease: false
|
65
|
+
type: :development
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: rake-compiler
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: !binary |-
|
73
|
+
MA==
|
74
|
+
none: false
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: !binary |-
|
80
|
+
MA==
|
81
|
+
none: false
|
82
|
+
prerelease: false
|
83
|
+
type: :development
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: !binary |-
|
91
|
+
MA==
|
92
|
+
none: false
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: !binary |-
|
98
|
+
MA==
|
99
|
+
none: false
|
100
|
+
prerelease: false
|
101
|
+
type: :development
|
102
|
+
description:
|
60
103
|
email: jcoglan@gmail.com
|
61
104
|
executables: []
|
62
|
-
|
63
105
|
extensions: []
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
- lib/faye_websocket_mask.jar
|
106
|
+
extra_rdoc_files:
|
107
|
+
- README.rdoc
|
108
|
+
files:
|
109
|
+
- README.rdoc
|
110
|
+
- CHANGELOG.txt
|
111
|
+
- ext/faye_websocket_mask/faye_websocket_mask.c
|
112
|
+
- ext/faye_websocket_mask/FayeWebsocketMaskService.java
|
113
|
+
- ext/faye_websocket_mask/extconf.rb
|
114
|
+
- lib/faye/eventsource.rb
|
115
|
+
- lib/faye/websocket.rb
|
116
|
+
- lib/faye/adapters/goliath.rb
|
117
|
+
- lib/faye/adapters/rainbows.rb
|
118
|
+
- lib/faye/adapters/rainbows_client.rb
|
119
|
+
- lib/faye/adapters/thin.rb
|
120
|
+
- lib/faye/websocket/adapter.rb
|
121
|
+
- lib/faye/websocket/api.rb
|
122
|
+
- lib/faye/websocket/client.rb
|
123
|
+
- lib/faye/websocket/draft75_parser.rb
|
124
|
+
- lib/faye/websocket/draft76_parser.rb
|
125
|
+
- lib/faye/websocket/hybi_parser.rb
|
126
|
+
- lib/faye/websocket/utf8_match.rb
|
127
|
+
- lib/faye/websocket/api/event.rb
|
128
|
+
- lib/faye/websocket/api/event_target.rb
|
129
|
+
- lib/faye/websocket/hybi_parser/handshake.rb
|
130
|
+
- lib/faye/websocket/hybi_parser/stream_reader.rb
|
131
|
+
- examples/app.rb
|
132
|
+
- examples/autobahn_client.rb
|
133
|
+
- examples/client.rb
|
134
|
+
- examples/config.ru
|
135
|
+
- examples/haproxy.conf
|
136
|
+
- examples/server.rb
|
137
|
+
- examples/sse.html
|
138
|
+
- examples/ws.html
|
139
|
+
- spec/rainbows.conf
|
140
|
+
- spec/server.crt
|
141
|
+
- spec/server.key
|
142
|
+
- spec/spec_helper.rb
|
143
|
+
- spec/faye/websocket/client_spec.rb
|
144
|
+
- spec/faye/websocket/draft75_parser_examples.rb
|
145
|
+
- spec/faye/websocket/draft75_parser_spec.rb
|
146
|
+
- spec/faye/websocket/draft76_parser_spec.rb
|
147
|
+
- spec/faye/websocket/hybi_parser_spec.rb
|
148
|
+
- lib/faye_websocket_mask.jar
|
108
149
|
homepage: http://github.com/faye/faye-websocket-ruby
|
109
150
|
licenses: []
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
151
|
+
post_install_message:
|
152
|
+
rdoc_options:
|
153
|
+
- "--main"
|
154
|
+
- README.rdoc
|
155
|
+
require_paths:
|
156
|
+
- lib
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: !binary |-
|
162
|
+
MA==
|
118
163
|
none: false
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
164
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: !binary |-
|
169
|
+
MA==
|
124
170
|
none: false
|
125
|
-
requirements:
|
126
|
-
- - ">="
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
version: "0"
|
129
171
|
requirements: []
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
signing_key:
|
172
|
+
rubyforge_project:
|
173
|
+
rubygems_version: 1.8.24
|
174
|
+
signing_key:
|
134
175
|
specification_version: 3
|
135
176
|
summary: Standards-compliant WebSocket server and client
|
136
177
|
test_files: []
|
137
|
-
|