em-rocketio-client 0.0.2 → 0.0.3

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/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ === 0.0.3 2013-03-25
2
+
3
+ * retry get /rocketio/settings
4
+
1
5
  === 0.0.2 2013-03-25
2
6
 
3
7
  * use EM::HttpRequest to get settings
@@ -7,32 +7,50 @@ module EventMachine
7
7
  include EventEmitter
8
8
  attr_reader :settings, :type, :io
9
9
 
10
+ public
10
11
  def initialize(url, opt={:type => :websocket})
11
- http = EM::HttpRequest.new("#{url}/rocketio/settings").get
12
+ @url = url
13
+ @type = opt[:type].to_sym
14
+ @settings = nil
15
+ @io = nil
16
+ @ws_close_timer = nil
17
+ get_settings
18
+ self
19
+ end
20
+
21
+ private
22
+ def get_settings
23
+ url = "#{@url}/rocketio/settings"
24
+ http = EM::HttpRequest.new(url).get
12
25
  http.callback do |res|
13
26
  begin
14
27
  @settings = JSON.parse res.response
15
28
  emit :__settings
16
29
  rescue => e
17
- emit :error, e
30
+ emit :error, "#{e} (#{url})"
31
+ EM::add_timer 10 do
32
+ get_settings
33
+ end
18
34
  end
19
35
  end
20
- http.errback do |err|
21
- emit :error, err
36
+ http.errback do |e|
37
+ if e.error == Errno::ECONNREFUSED
38
+ emit :error, "connection refused (#{url})"
39
+ else
40
+ emit :error, "#{err.error} (#{url})"
41
+ end
42
+ EM::add_timer 10 do
43
+ get_settings
44
+ end
22
45
  end
23
- @settings = nil
24
- @type = opt[:type].to_sym
25
- @io = nil
26
- @ws_close_timer = nil
27
- self
28
46
  end
29
47
 
48
+ public
30
49
  def connect
31
50
  this = self
32
51
  once :__settings do
33
52
  if @type == :websocket and @settings.include? 'websocket'
34
53
  @io = EM::WebSocketIO::Client.new(@settings['websocket']).connect
35
- @type = :websocket
36
54
  elsif @type == :comet or @settings.include? 'comet'
37
55
  @io = EM::CometIO::Client.new(@settings['comet']).connect
38
56
  @type = :comet
@@ -1,7 +1,7 @@
1
1
  module EventMachine
2
2
  module RocketIO
3
3
  class Client
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-rocketio-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -209,7 +209,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
209
  version: '0'
210
210
  segments:
211
211
  - 0
212
- hash: -1144909537786035636
212
+ hash: 489993316475369448
213
213
  required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  none: false
215
215
  requirements:
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  version: '0'
219
219
  segments:
220
220
  - 0
221
- hash: -1144909537786035636
221
+ hash: 489993316475369448
222
222
  requirements: []
223
223
  rubyforge_project:
224
224
  rubygems_version: 1.8.24