stomp 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/stomp.rb +20 -10
- metadata +2 -2
data/lib/stomp.rb
CHANGED
@@ -23,14 +23,14 @@ module Stomp
|
|
23
23
|
# synchronous receives
|
24
24
|
class Connection
|
25
25
|
|
26
|
-
def Connection.open(login = "", passcode = "", host='localhost', port=61613, reliable=FALSE)
|
27
|
-
Connection.new login, passcode, host, port, reliable
|
26
|
+
def Connection.open(login = "", passcode = "", host='localhost', port=61613, reliable=FALSE, reconnectDelay=5)
|
27
|
+
Connection.new login, passcode, host, port, reliable, reconnectDelay
|
28
28
|
end
|
29
29
|
|
30
30
|
# Create a connection, requires a login and passcode.
|
31
31
|
# Can accept a host (default is localhost), and port
|
32
32
|
# (default is 61613) to connect to
|
33
|
-
def initialize(login, passcode, host='localhost', port=61613, reliable=
|
33
|
+
def initialize(login, passcode, host='localhost', port=61613, reliable=false, reconnectDelay=5)
|
34
34
|
@host = host
|
35
35
|
@port = port
|
36
36
|
@login = login
|
@@ -39,7 +39,7 @@ module Stomp
|
|
39
39
|
@read_semaphore = Mutex.new
|
40
40
|
@socket_semaphore = Mutex.new
|
41
41
|
@reliable = reliable
|
42
|
-
@reconnectDelay =
|
42
|
+
@reconnectDelay = reconnectDelay
|
43
43
|
@closed = FALSE
|
44
44
|
@subscriptions = {}
|
45
45
|
@failure = NIL
|
@@ -126,7 +126,7 @@ module Stomp
|
|
126
126
|
transmit "UNSUBSCRIBE", headers
|
127
127
|
if @reliable
|
128
128
|
subId = name if subId==NIL
|
129
|
-
@
|
129
|
+
@subscriptions.delete(subId)
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
@@ -153,7 +153,7 @@ module Stomp
|
|
153
153
|
end
|
154
154
|
|
155
155
|
# Receive a frame, block until the frame is received
|
156
|
-
def
|
156
|
+
def __old_receive
|
157
157
|
# The recive my fail so we may need to retry.
|
158
158
|
while TRUE
|
159
159
|
begin
|
@@ -166,12 +166,22 @@ module Stomp
|
|
166
166
|
end
|
167
167
|
end
|
168
168
|
end
|
169
|
-
|
169
|
+
|
170
|
+
def receive
|
171
|
+
super_result = __old_receive()
|
172
|
+
if super_result.nil? && @reliable
|
173
|
+
$stderr.print "connection.receive returning EOF as nil - resetting connection.\n"
|
174
|
+
@socket = nil
|
175
|
+
super_result = __old_receive()
|
176
|
+
end
|
177
|
+
return super_result
|
178
|
+
end
|
179
|
+
|
170
180
|
private
|
171
181
|
def _receive( s )
|
172
182
|
line = ' '
|
173
183
|
@read_semaphore.synchronize do
|
174
|
-
line = s.gets
|
184
|
+
line = s.gets while line =~ /^\s*$/
|
175
185
|
return NIL if line == NIL
|
176
186
|
Message.new do |m|
|
177
187
|
m.command = line.chomp
|
@@ -192,8 +202,8 @@ module Stomp
|
|
192
202
|
m.body << c.chr
|
193
203
|
end
|
194
204
|
end
|
195
|
-
c = s.getc
|
196
|
-
raise "Invalid frame termination received" unless c == 10
|
205
|
+
#c = s.getc
|
206
|
+
#raise "Invalid frame termination received" unless c == 10
|
197
207
|
end
|
198
208
|
end
|
199
209
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: stomp
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date:
|
6
|
+
version: 1.0.3
|
7
|
+
date: 2007-01-04 00:00:00 -08:00
|
8
8
|
summary: Ruby client for the Stomp messaging protocol
|
9
9
|
require_paths:
|
10
10
|
- lib
|