rfc-ws-client 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/lib/rfc-ws-client.rb +3 -18
- data/lib/rfc-ws-client/version.rb +1 -1
- metadata +2 -2
data/lib/rfc-ws-client.rb
CHANGED
@@ -5,7 +5,6 @@ require 'uri'
|
|
5
5
|
require 'socket'
|
6
6
|
require 'securerandom'
|
7
7
|
require "digest/sha1"
|
8
|
-
require 'rainbow'
|
9
8
|
require 'base64'
|
10
9
|
|
11
10
|
module RfcWebSocket
|
@@ -26,7 +25,6 @@ module RfcWebSocket
|
|
26
25
|
OPCODE_CLOSE = 0x08
|
27
26
|
OPCODE_PING = 0x09
|
28
27
|
OPCODE_PONG = 0x0a
|
29
|
-
DEBUG = false
|
30
28
|
|
31
29
|
def initialize(uri, protocol = "")
|
32
30
|
uri = URI.parse(uri) unless uri.is_a?(URI)
|
@@ -53,11 +51,11 @@ module RfcWebSocket
|
|
53
51
|
write(handshake(host, path, request_key))
|
54
52
|
flush()
|
55
53
|
|
56
|
-
status_line = gets.chomp
|
54
|
+
status_line = @socket.gets.chomp
|
57
55
|
raise WebSocketError.new("bad response: #{status_line}") unless status_line.start_with?("HTTP/1.1 101")
|
58
56
|
|
59
57
|
header = {}
|
60
|
-
while line = gets
|
58
|
+
while line = @socket.gets
|
61
59
|
line.chomp!
|
62
60
|
break if line.empty?
|
63
61
|
if !(line =~ /\A(\S+): (.*)\z/n)
|
@@ -84,7 +82,6 @@ module RfcWebSocket
|
|
84
82
|
# Loop until something returns
|
85
83
|
while true
|
86
84
|
b1, b2 = read(2).unpack("CC")
|
87
|
-
puts "b1: #{b1.to_s(2).rjust(8, "0")}, b2: #{b2.to_s(2).rjust(8, "0")}" if DEBUG
|
88
85
|
# first byte
|
89
86
|
fin = (b1 & 0x80) != 0
|
90
87
|
raise WebSocketError.new("reserved bits must be 0") if (b1 & 0b01110000) != 0
|
@@ -175,14 +172,7 @@ module RfcWebSocket
|
|
175
172
|
|
176
173
|
private
|
177
174
|
|
178
|
-
def gets(delim = $/)
|
179
|
-
line = @socket.gets(delim)
|
180
|
-
print line.color(:green) if DEBUG
|
181
|
-
line
|
182
|
-
end
|
183
|
-
|
184
175
|
def write(data)
|
185
|
-
print data.color(:yellow) if DEBUG
|
186
176
|
@socket.write(data)
|
187
177
|
@socket.flush
|
188
178
|
end
|
@@ -190,7 +180,6 @@ module RfcWebSocket
|
|
190
180
|
def read(num_bytes)
|
191
181
|
str = @socket.read(num_bytes)
|
192
182
|
if str && str.bytesize == num_bytes
|
193
|
-
print str.color(:green) if DEBUG
|
194
183
|
str
|
195
184
|
else
|
196
185
|
raise(EOFError)
|
@@ -257,12 +246,8 @@ module RfcWebSocket
|
|
257
246
|
end
|
258
247
|
end
|
259
248
|
|
260
|
-
def force_utf8(str)
|
261
|
-
str.force_encoding("UTF-8")
|
262
|
-
end
|
263
|
-
|
264
249
|
def valid_utf8?(str)
|
265
|
-
|
250
|
+
str.force_encoding("UTF-8").valid_encoding?
|
266
251
|
end
|
267
252
|
end
|
268
253
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rfc-ws-client
|
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:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-20 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email:
|