nats 0.4.8 → 0.4.10
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/nats/client.rb +14 -8
- data/lib/nats/server/const.rb +1 -1
- data/lib/nats/server/server.rb +3 -2
- metadata +2 -2
data/lib/nats/client.rb
CHANGED
@@ -8,7 +8,7 @@ require "#{ep}/ext/json"
|
|
8
8
|
|
9
9
|
module NATS
|
10
10
|
|
11
|
-
VERSION = "0.4.
|
11
|
+
VERSION = "0.4.10".freeze
|
12
12
|
|
13
13
|
DEFAULT_PORT = 4222
|
14
14
|
DEFAULT_URI = "nats://localhost:#{DEFAULT_PORT}".freeze
|
@@ -53,6 +53,14 @@ module NATS
|
|
53
53
|
class Error < StandardError #:nodoc:
|
54
54
|
end
|
55
55
|
|
56
|
+
# When the NATS server sends us an ERROR message, this is raised/passed by default
|
57
|
+
class ServerError < Error #:nodoc:
|
58
|
+
end
|
59
|
+
|
60
|
+
# When we cannot connect to the server (either initially or after a reconnect), this is raised/passed
|
61
|
+
class ConnectError < Error #:nodoc:
|
62
|
+
end
|
63
|
+
|
56
64
|
class << self
|
57
65
|
attr_reader :client, :reactor_was_running, :err_cb, :err_cb_overridden #:nodoc:
|
58
66
|
attr_accessor :timeout_cb #:nodoc
|
@@ -84,7 +92,7 @@ module NATS
|
|
84
92
|
opts[:pedantic] = ENV['NATS_PEDANTIC'] unless ENV['NATS_PEDANTIC'].nil?
|
85
93
|
opts[:debug] = ENV['NATS_DEBUG'] if !ENV['NATS_DEBUG'].nil?
|
86
94
|
@uri = opts[:uri] = URI.parse(opts[:uri])
|
87
|
-
@err_cb = proc { raise
|
95
|
+
@err_cb = proc {|e| raise e } unless err_cb
|
88
96
|
check_autostart(@uri) if opts[:autostart] == true
|
89
97
|
|
90
98
|
client = EM.connect(@uri.host, @uri.port, self, opts)
|
@@ -402,8 +410,7 @@ module NATS
|
|
402
410
|
@buf = $'
|
403
411
|
when ERR
|
404
412
|
@buf = $'
|
405
|
-
|
406
|
-
err_cb.call($1)
|
413
|
+
err_cb.call(NATS::ServerError.new($1))
|
407
414
|
when PING
|
408
415
|
@buf = $'
|
409
416
|
send_command(PONG_RESPONSE)
|
@@ -416,8 +423,7 @@ module NATS
|
|
416
423
|
process_info($1)
|
417
424
|
when UNKNOWN
|
418
425
|
@buf = $'
|
419
|
-
|
420
|
-
err_cb.call($1)
|
426
|
+
err_cb.call(NATS::Error.new("Unknown protocol: $1"))
|
421
427
|
else
|
422
428
|
# If we are here we do not have a complete line yet that we understand.
|
423
429
|
return
|
@@ -448,7 +454,7 @@ module NATS
|
|
448
454
|
end
|
449
455
|
flush_pending if @pending
|
450
456
|
unless user_err_cb? or reconnecting?
|
451
|
-
@err_cb = proc { raise
|
457
|
+
@err_cb = proc {|e| raise e }
|
452
458
|
end
|
453
459
|
if (connect_cb and not reconnecting?)
|
454
460
|
# We will round trip the server here to make sure all state from any pending commands
|
@@ -476,7 +482,7 @@ module NATS
|
|
476
482
|
def process_disconnect #:nodoc:
|
477
483
|
if not closing? and @err_cb
|
478
484
|
err_string = @connected ? "Client disconnected from server on #{@uri}." : "Could not connect to server on #{@uri}"
|
479
|
-
err_cb.call(err_string)
|
485
|
+
err_cb.call(NATS::ConnectError.new(err_string))
|
480
486
|
end
|
481
487
|
ensure
|
482
488
|
EM.cancel_timer(@reconnect_timer) if @reconnect_timer
|
data/lib/nats/server/const.rb
CHANGED
data/lib/nats/server/server.rb
CHANGED
@@ -109,8 +109,9 @@ module NATSD #:nodoc: all
|
|
109
109
|
trace("Matched queue subscriber", sub[:subject], sub[:qgroup], sub[:sid], sub.conn.client_info)
|
110
110
|
end
|
111
111
|
# Queue this for post processing
|
112
|
-
qsubs ||= Hash.new
|
113
|
-
qsubs[sub[:qgroup]]
|
112
|
+
qsubs ||= Hash.new
|
113
|
+
qsubs[sub[:qgroup]] ||= []
|
114
|
+
qsubs[sub[:qgroup]] << sub
|
114
115
|
end
|
115
116
|
end
|
116
117
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: nats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.4.
|
5
|
+
version: 0.4.10
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Derek Collison
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-04-
|
13
|
+
date: 2011-04-21 00:00:00 -05:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|