websocket 1.0.0 → 1.0.1
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.
- data/CHANGELOG.md +7 -1
- data/autobahn-server.json +1 -1
- data/lib/websocket/handshake/client.rb +4 -3
- data/lib/websocket/handshake/server.rb +1 -0
- data/lib/websocket/version.rb +1 -1
- data/spec/support/all_client_drafts.rb +21 -0
- metadata +3 -3
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## 1.0.
|
3
|
+
## 1.0.1
|
4
|
+
|
5
|
+
- allow creating client with :uri and :url options
|
6
|
+
- prevent strange results when header is mailformed
|
7
|
+
- set client path to '/' when :uri option is provided but without trailing slash
|
8
|
+
|
9
|
+
## 1.0.0
|
4
10
|
|
5
11
|
- initial release
|
data/autobahn-server.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"options": {"failByDrop": false},
|
3
3
|
"outdir": "./autobahn/server",
|
4
4
|
|
5
|
-
"servers": [{"agent": "WebSocket-Ruby v1.0.
|
5
|
+
"servers": [{"agent": "WebSocket-Ruby v1.0.1", "url": "ws://localhost:9001", "options": {"version": 18}}],
|
6
6
|
|
7
7
|
"cases": ["*"],
|
8
8
|
"exclude-cases": [],
|
@@ -10,8 +10,8 @@ module WebSocket
|
|
10
10
|
@version = args[:version] || DEFAULT_VERSION
|
11
11
|
@origin = args[:origin]
|
12
12
|
|
13
|
-
if args[:uri]
|
14
|
-
uri = URI.parse(args[:uri])
|
13
|
+
if args[:url] || args[:uri]
|
14
|
+
uri = URI.parse(args[:url] || args[:uri])
|
15
15
|
@secure = (uri.scheme == 'wss')
|
16
16
|
@host = uri.host
|
17
17
|
@port = uri.port
|
@@ -25,7 +25,7 @@ module WebSocket
|
|
25
25
|
@path = args[:path] if args[:path]
|
26
26
|
@query = args[:query] if args[:query]
|
27
27
|
|
28
|
-
@path
|
28
|
+
@path = '/' if @path.nil? || @path.empty?
|
29
29
|
|
30
30
|
set_error(:no_host_provided) unless @host
|
31
31
|
|
@@ -69,6 +69,7 @@ module WebSocket
|
|
69
69
|
|
70
70
|
def parse_first_line(line)
|
71
71
|
line_parts = line.match(FIRST_LINE)
|
72
|
+
set_error(:invalid_header) and return unless line_parts
|
72
73
|
status = line_parts[1]
|
73
74
|
set_error(:invalid_status_code) and return unless status == '101'
|
74
75
|
|
data/lib/websocket/version.rb
CHANGED
@@ -41,6 +41,27 @@ shared_examples_for 'all client drafts' do
|
|
41
41
|
handshake.port.should eql(123)
|
42
42
|
end
|
43
43
|
|
44
|
+
it "should parse uri" do
|
45
|
+
@request_params = { :uri => "ws://test.example.org:301/test_path?query=true" }
|
46
|
+
handshake.host.should eql('test.example.org')
|
47
|
+
handshake.port.should eql(301)
|
48
|
+
handshake.path.should eql('/test_path')
|
49
|
+
handshake.query.should eql('query=true')
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should parse url" do
|
53
|
+
@request_params = { :url => "ws://test.example.org:301/test_path?query=true" }
|
54
|
+
handshake.host.should eql('test.example.org')
|
55
|
+
handshake.port.should eql(301)
|
56
|
+
handshake.path.should eql('/test_path')
|
57
|
+
handshake.query.should eql('query=true')
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should resolve correct path with root server provided" do
|
61
|
+
@request_params = { :url => "ws://test.example.org" }
|
62
|
+
handshake.path.should eql('/')
|
63
|
+
end
|
64
|
+
|
44
65
|
it "should return valid response" do
|
45
66
|
validate_request
|
46
67
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: websocket
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
120
|
version: '0'
|
121
121
|
segments:
|
122
122
|
- 0
|
123
|
-
hash: -
|
123
|
+
hash: -2471372616907526003
|
124
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
125
|
none: false
|
126
126
|
requirements:
|
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
129
|
version: '0'
|
130
130
|
segments:
|
131
131
|
- 0
|
132
|
-
hash: -
|
132
|
+
hash: -2471372616907526003
|
133
133
|
requirements: []
|
134
134
|
rubyforge_project:
|
135
135
|
rubygems_version: 1.8.24
|