websocket-td 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -0
  3. data/VERSION +1 -1
  4. data/lib/websocket_td.rb +12 -21
  5. metadata +15 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d8a2552cc751d247fbf1c6d2da7131496cb14c7
4
- data.tar.gz: 6b06681bc4ea248aa573ea23c6ad54d144ec32db
3
+ metadata.gz: 559335d8c9eb309fcd0e39cc2a36be020ca30a4c
4
+ data.tar.gz: d60da560306edf6659b1197a29ae987eaed29109
5
5
  SHA512:
6
- metadata.gz: 0ddecf9cf0bc04a74ea1541667ad81264a3e74b039330e76b232e49b75aea9cfa791183067bf87425eef6a428ce1bfb60055f93f7c966c8238d9f9a9ab7eff52
7
- data.tar.gz: a1d5bc49e8e149e10167e443a3625d3577f8bd4f58546c28d5c6846bc9ec6147e818aae8af1623071de359e94d87cc45dbf2f8fe1d6ab92d3c88d47c412adb9a
6
+ metadata.gz: 4ebb60bce20e2aeef754db2641d4933335d69b3b1c94040ce11983cbffc4f4f983c9fd32b2c05ef19260198301a90ed871f757bd80e51f6067d7f406e5fc977e
7
+ data.tar.gz: 724644597d956e91c365578abbbe81fc478096bc03d644423543e8c27c8d9f9361914417f7fd8b4ff783c1526468d785f30bb8d089c4ce366791ad327b1a84f2
@@ -0,0 +1,2 @@
1
+ ### 0.0.5
2
+ Address #3 - prevent zombie processes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -107,7 +107,7 @@ module WebsocketTD
107
107
  init_messaging
108
108
  #don't stop reading until after init_message to guarantee @read_thread != nil for a successful connection
109
109
  reading = false
110
- @opened =true
110
+ @opened = true
111
111
  fire_on_open
112
112
  else
113
113
  #do non blocking reads on headers - 1 byte at a time
@@ -140,30 +140,21 @@ module WebsocketTD
140
140
 
141
141
  #Use one thread to perform blocking read on the socket
142
142
  def init_messaging
143
- if @read_thread == nil
144
- @read_thread = Thread.new do
145
- read_loop
146
- end
147
- end
143
+ @read_thread ||= Thread.new { read_loop }
148
144
  end
149
145
 
150
146
  def read_loop
151
147
  frame = WebSocket::Frame::Incoming::Client.new(:version => @handshake.version)
152
148
  while @active
153
- if @socket.closed?
154
- @active = false
155
- fire_on_close
156
- else
157
- begin
158
- frame << @socket.readpartial(@read_buffer)
159
- if (message = frame.next) != nil
160
- #"text", "binary", "ping", "pong" and "close" (according to websocket/base.rb)
161
- determine_message_type(message)
162
- end
163
- rescue EOFError => eof
164
- fire_on_error(eof)
165
- fire_on_close
149
+ begin
150
+ frame << @socket.readpartial(@read_buffer)
151
+ if (message = frame.next) != nil
152
+ #"text", "binary", "ping", "pong" and "close" (according to websocket/base.rb)
153
+ determine_message_type(message)
166
154
  end
155
+ rescue Exception => e
156
+ fire_on_error(e)
157
+ fire_on_close if @socket.closed?
167
158
  end
168
159
  end
169
160
  end
@@ -218,8 +209,8 @@ module WebsocketTD
218
209
  @active = false
219
210
  @closed = true
220
211
  @on_close.call(message) unless @on_close == nil
221
- @socket.close
212
+ @socket.close unless @socket.closed?
222
213
  end
223
214
 
224
215
  end # class
225
- end # module
216
+ end # module
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: websocket-td
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Courtney Robinson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-07 00:00:00.000000000 Z
11
+ date: 2015-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: websocket
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.1.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.1.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">"
31
+ - - '>'
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">"
38
+ - - '>'
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: shoulda
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: 2.11.3
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.11.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: test-unit
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.5.5
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 2.5.5
69
69
  description: A multi-threaded WebSocket client, i.e. without event machine
@@ -73,7 +73,8 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - ".gitignore"
76
+ - .gitignore
77
+ - CHANGELOG.md
77
78
  - Gemfile
78
79
  - Gemfile.lock
79
80
  - LICENSE
@@ -93,17 +94,17 @@ require_paths:
93
94
  - lib
94
95
  required_ruby_version: !ruby/object:Gem::Requirement
95
96
  requirements:
96
- - - ">="
97
+ - - '>='
97
98
  - !ruby/object:Gem::Version
98
99
  version: '0'
99
100
  required_rubygems_version: !ruby/object:Gem::Requirement
100
101
  requirements:
101
- - - ">="
102
+ - - '>='
102
103
  - !ruby/object:Gem::Version
103
104
  version: 1.3.6
104
105
  requirements: []
105
106
  rubyforge_project:
106
- rubygems_version: 2.2.2
107
+ rubygems_version: 2.0.14
107
108
  signing_key:
108
109
  specification_version: 4
109
110
  summary: A client which will offer the option of using green threads or a single threaded