stomp 1.4.5 → 1.4.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +39 -1
- data/CONTRIBUTORS.md +749 -0
- data/README.md +74 -752
- data/Rakefile +1 -1
- data/examples/conn_get.rb +122 -0
- data/examples/conn_put.rb +111 -0
- data/examples/conn_put_pace.rb +117 -0
- data/examples/conn_putget.rb +8 -1
- data/examples/contributors.rb +14 -1
- data/examples/examplogger.rb +33 -11
- data/examples/logexamp.rb +3 -0
- data/examples/putget_file.rb +2 -2
- data/examples/showver.rb +4 -0
- data/examples/ssl/SSL.md +1 -1
- data/examples/ssl/ssl_common.rb +24 -0
- data/examples/ssl/uc3/{ssl_uc3.rb → ssl_uc3_from_files.rb} +0 -0
- data/examples/ssl/uc3/{ssl_uc3_ciphers.rb → ssl_uc3_from_files_ciphers.rb} +0 -0
- data/examples/ssl/uc3/ssl_uc3_without_files.rb +69 -0
- data/examples/ssl/uc3/ssl_uc3_without_files_ciphers.rb +65 -0
- data/examples/stomp_common.rb +1 -0
- data/lib/client/utils.rb +1 -0
- data/lib/connection/heartbeats.rb +1 -1
- data/lib/connection/netio.rb +81 -29
- data/lib/connection/utils.rb +1 -0
- data/lib/stomp/connection.rb +1 -0
- data/lib/stomp/sslparams.rb +19 -5
- data/lib/stomp/version.rb +5 -3
- data/spec/connection_spec.rb +1 -1
- data/stomp.gemspec +13 -6
- data/test/test_anonymous.rb +94 -3
- data/test/test_client.rb +210 -76
- data/test/test_codec.rb +13 -0
- data/test/test_connection.rb +113 -1
- data/test/test_connection1p.rb +87 -2
- data/test/test_helper.rb +1 -1
- data/test/test_message.rb +29 -5
- data/test/test_ssl.rb +54 -0
- data/test/test_urlogin.rb +19 -2
- metadata +12 -6
data/Rakefile
CHANGED
@@ -33,7 +33,7 @@ begin
|
|
33
33
|
gem.version = Stomp::Version::STRING
|
34
34
|
gem.summary = %Q{Ruby client for the Stomp messaging protocol}
|
35
35
|
gem.license = "Apache-2.0"
|
36
|
-
gem.description = %Q{Ruby client for the Stomp messaging protocol.
|
36
|
+
gem.description = %Q{Ruby client for the Stomp messaging protocol.}
|
37
37
|
gem.email = ["brianm@apache.org", 'marius@stones.com', 'morellon@gmail.com',
|
38
38
|
'allard.guy.m@gmail.com' ]
|
39
39
|
gem.homepage = "https://github.com/stompgem/stomp"
|
@@ -0,0 +1,122 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
#
|
4
|
+
# The current require dance for different Ruby versions.
|
5
|
+
# Change this to suit your requirements.
|
6
|
+
#
|
7
|
+
if Kernel.respond_to?(:require_relative)
|
8
|
+
require_relative("./stomp_common")
|
9
|
+
else
|
10
|
+
$LOAD_PATH << File.dirname(__FILE__)
|
11
|
+
require "stomp_common"
|
12
|
+
end
|
13
|
+
include Stomp1xCommon
|
14
|
+
|
15
|
+
#
|
16
|
+
# == Stomp 1.x Putt / Get Example
|
17
|
+
#
|
18
|
+
# Purpose: to demonstrate producing and consuming messages using a
|
19
|
+
# Stomp#Connection instance.
|
20
|
+
#
|
21
|
+
# Note: this example assumes that you have at least the 1.2.0 gem release
|
22
|
+
# installed.
|
23
|
+
#
|
24
|
+
# When you:
|
25
|
+
#
|
26
|
+
# * Use a Stomp compliant broker
|
27
|
+
# * Want a Stomp 1.1+ connection and functionality
|
28
|
+
#
|
29
|
+
# then your code *must* specifically request that environment.
|
30
|
+
#
|
31
|
+
# You need to supply all of the normal values expected of course:
|
32
|
+
#
|
33
|
+
# * login - the user name
|
34
|
+
# * passcode - the password
|
35
|
+
# * host - the host to connect to
|
36
|
+
# * port - the port to connect to
|
37
|
+
#
|
38
|
+
# Additionaly you are required to supply the 1.1+ connection data as documented
|
39
|
+
# in the Stomp 1.1+ specifications:
|
40
|
+
#
|
41
|
+
# http://stomp.github.com/stomp-specification-1.0.html
|
42
|
+
# http://stomp.github.com/stomp-specification-1.1.html
|
43
|
+
# http://stomp.github.com/stomp-specification-1.2.html
|
44
|
+
#
|
45
|
+
# You are urged to become familiar with the specs. They are short documents.
|
46
|
+
#
|
47
|
+
# This includes:
|
48
|
+
#
|
49
|
+
# * The Stomp version(s) you wish the broker to consider
|
50
|
+
# * The broker vhost to connect to
|
51
|
+
#
|
52
|
+
# You may optionally specify other 1.1+ data:
|
53
|
+
#
|
54
|
+
# * heartbeat request
|
55
|
+
#
|
56
|
+
# Using the stomp gem, you should specify this data in the "connect_headers" Hash
|
57
|
+
# parameter. This example uses the common get_connection() method to
|
58
|
+
# get a connection.
|
59
|
+
#
|
60
|
+
class ConnectionGetExample
|
61
|
+
# Initialize
|
62
|
+
def initialize
|
63
|
+
end
|
64
|
+
# Run example
|
65
|
+
def run
|
66
|
+
#
|
67
|
+
# Get a connection
|
68
|
+
# ================
|
69
|
+
#
|
70
|
+
conn = get_connection()
|
71
|
+
#
|
72
|
+
# Let's just do some sanity checks, and look around.
|
73
|
+
#
|
74
|
+
raise "Connection failed!!" unless conn.open?()
|
75
|
+
#
|
76
|
+
# The broker _could_ have returned an ERROR frame (unlikely).
|
77
|
+
#
|
78
|
+
raise "Connect error: #{conn.connection_frame.body}" if conn.connection_frame.command == Stomp::CMD_ERROR
|
79
|
+
#
|
80
|
+
puts "Connection complete."
|
81
|
+
#
|
82
|
+
# Get Destination
|
83
|
+
#
|
84
|
+
qname = dest()
|
85
|
+
nm = nmsgs()
|
86
|
+
puts
|
87
|
+
puts "Connection start receives"
|
88
|
+
#
|
89
|
+
# Receives
|
90
|
+
#
|
91
|
+
# Subscribe
|
92
|
+
#
|
93
|
+
uuid = conn.uuid() # uuid for Stomp::Connection is a public method
|
94
|
+
conn.subscribe(qname, {'id' => uuid}) # Subscribe
|
95
|
+
#
|
96
|
+
# Run gets
|
97
|
+
#
|
98
|
+
received = ""
|
99
|
+
1.upto(nm) do
|
100
|
+
received = conn.receive()
|
101
|
+
puts "Received headers: #{received.headers}"
|
102
|
+
puts "Received body: #{received.body}"
|
103
|
+
end
|
104
|
+
puts
|
105
|
+
received.headers.each do |h|
|
106
|
+
puts h
|
107
|
+
end
|
108
|
+
#
|
109
|
+
# And be polite, unsubscribe.
|
110
|
+
#
|
111
|
+
conn.unsubscribe(qname, {'id' => uuid})
|
112
|
+
#
|
113
|
+
# Finally disconnect
|
114
|
+
# ==================
|
115
|
+
#
|
116
|
+
conn.disconnect() # Business as usual
|
117
|
+
puts "\nConnection disconnect complete"
|
118
|
+
end
|
119
|
+
end
|
120
|
+
#
|
121
|
+
e = ConnectionGetExample.new()
|
122
|
+
e.run
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
#
|
4
|
+
# The current require dance for different Ruby versions.
|
5
|
+
# Change this to suit your requirements.
|
6
|
+
#
|
7
|
+
if Kernel.respond_to?(:require_relative)
|
8
|
+
require_relative("./stomp_common")
|
9
|
+
else
|
10
|
+
$LOAD_PATH << File.dirname(__FILE__)
|
11
|
+
require "stomp_common"
|
12
|
+
end
|
13
|
+
include Stomp1xCommon
|
14
|
+
|
15
|
+
#
|
16
|
+
# == Stomp 1.x Putt / Get Example
|
17
|
+
#
|
18
|
+
# Purpose: to demonstrate producing and consuming messages using a
|
19
|
+
# Stomp#Connection instance.
|
20
|
+
#
|
21
|
+
# Note: this example assumes that you have at least the 1.2.0 gem release
|
22
|
+
# installed.
|
23
|
+
#
|
24
|
+
# When you:
|
25
|
+
#
|
26
|
+
# * Use a Stomp compliant broker
|
27
|
+
# * Want a Stomp 1.1+ connection and functionality
|
28
|
+
#
|
29
|
+
# then your code *must* specifically request that environment.
|
30
|
+
#
|
31
|
+
# You need to supply all of the normal values expected of course:
|
32
|
+
#
|
33
|
+
# * login - the user name
|
34
|
+
# * passcode - the password
|
35
|
+
# * host - the host to connect to
|
36
|
+
# * port - the port to connect to
|
37
|
+
#
|
38
|
+
# Additionaly you are required to supply the 1.1+ connection data as documented
|
39
|
+
# in the Stomp 1.1+ specifications:
|
40
|
+
#
|
41
|
+
# http://stomp.github.com/stomp-specification-1.0.html
|
42
|
+
# http://stomp.github.com/stomp-specification-1.1.html
|
43
|
+
# http://stomp.github.com/stomp-specification-1.2.html
|
44
|
+
#
|
45
|
+
# You are urged to become familiar with the specs. They are short documents.
|
46
|
+
#
|
47
|
+
# This includes:
|
48
|
+
#
|
49
|
+
# * The Stomp version(s) you wish the broker to consider
|
50
|
+
# * The broker vhost to connect to
|
51
|
+
#
|
52
|
+
# You may optionally specify other 1.1+ data:
|
53
|
+
#
|
54
|
+
# * heartbeat request
|
55
|
+
#
|
56
|
+
# Using the stomp gem, you should specify this data in the "connect_headers" Hash
|
57
|
+
# parameter. This example uses the common get_connection() method to
|
58
|
+
# get a connection.
|
59
|
+
#
|
60
|
+
class ConnectionPutExample
|
61
|
+
# Initialize
|
62
|
+
def initialize
|
63
|
+
end
|
64
|
+
# Run example
|
65
|
+
def run
|
66
|
+
#
|
67
|
+
# Get a connection
|
68
|
+
# ================
|
69
|
+
#
|
70
|
+
conn = get_connection()
|
71
|
+
#
|
72
|
+
# Let's just do some sanity checks, and look around.
|
73
|
+
#
|
74
|
+
raise "Connection failed!!" unless conn.open?()
|
75
|
+
#
|
76
|
+
# The broker _could_ have returned an ERROR frame (unlikely).
|
77
|
+
#
|
78
|
+
raise "Connect error: #{conn.connection_frame.body}" if conn.connection_frame.command == Stomp::CMD_ERROR
|
79
|
+
#
|
80
|
+
puts "Connection complete."
|
81
|
+
#
|
82
|
+
# Get Destination
|
83
|
+
#
|
84
|
+
qname = dest()
|
85
|
+
#
|
86
|
+
# Publish/put messages
|
87
|
+
#
|
88
|
+
puts "\nConnection start puts"
|
89
|
+
nm = nmsgs()
|
90
|
+
ph = {:persistent => true}
|
91
|
+
ph['suppress_content_length'] = 'yes' if suppresscl()
|
92
|
+
ph['K:A'] = 'V:A'
|
93
|
+
ph['K\B'] = 'V\B'
|
94
|
+
ph['K:C'] = 'V\C'
|
95
|
+
puts "Put Headers: #{ph}"
|
96
|
+
1.upto(nm) do |n|
|
97
|
+
data = "message payload: #{n} #{Time.now.to_f}"
|
98
|
+
conn.publish(qname, data, ph)
|
99
|
+
puts "Sent: #{data}"
|
100
|
+
end
|
101
|
+
#
|
102
|
+
# Finally disconnect
|
103
|
+
# ==================
|
104
|
+
#
|
105
|
+
conn.disconnect() # Business as usual
|
106
|
+
puts "\nConnection disconnect complete"
|
107
|
+
end
|
108
|
+
end
|
109
|
+
#
|
110
|
+
e = ConnectionPutExample.new()
|
111
|
+
e.run
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
#
|
4
|
+
# The current require dance for different Ruby versions.
|
5
|
+
# Change this to suit your requirements.
|
6
|
+
#
|
7
|
+
if Kernel.respond_to?(:require_relative)
|
8
|
+
require_relative("./stomp_common")
|
9
|
+
else
|
10
|
+
$LOAD_PATH << File.dirname(__FILE__)
|
11
|
+
require "stomp_common"
|
12
|
+
end
|
13
|
+
include Stomp1xCommon
|
14
|
+
|
15
|
+
#
|
16
|
+
# == Stomp 1.x Putt / Get Example
|
17
|
+
#
|
18
|
+
# Purpose: to demonstrate producing and consuming messages using a
|
19
|
+
# Stomp#Connection instance.
|
20
|
+
#
|
21
|
+
# Note: this example assumes that you have at least the 1.2.0 gem release
|
22
|
+
# installed.
|
23
|
+
#
|
24
|
+
# When you:
|
25
|
+
#
|
26
|
+
# * Use a Stomp compliant broker
|
27
|
+
# * Want a Stomp 1.1+ connection and functionality
|
28
|
+
#
|
29
|
+
# then your code *must* specifically request that environment.
|
30
|
+
#
|
31
|
+
# You need to supply all of the normal values expected of course:
|
32
|
+
#
|
33
|
+
# * login - the user name
|
34
|
+
# * passcode - the password
|
35
|
+
# * host - the host to connect to
|
36
|
+
# * port - the port to connect to
|
37
|
+
#
|
38
|
+
# Additionaly you are required to supply the 1.1+ connection data as documented
|
39
|
+
# in the Stomp 1.1+ specifications:
|
40
|
+
#
|
41
|
+
# http://stomp.github.com/stomp-specification-1.0.html
|
42
|
+
# http://stomp.github.com/stomp-specification-1.1.html
|
43
|
+
# http://stomp.github.com/stomp-specification-1.2.html
|
44
|
+
#
|
45
|
+
# You are urged to become familiar with the specs. They are short documents.
|
46
|
+
#
|
47
|
+
# This includes:
|
48
|
+
#
|
49
|
+
# * The Stomp version(s) you wish the broker to consider
|
50
|
+
# * The broker vhost to connect to
|
51
|
+
#
|
52
|
+
# You may optionally specify other 1.1+ data:
|
53
|
+
#
|
54
|
+
# * heartbeat request
|
55
|
+
#
|
56
|
+
# Using the stomp gem, you should specify this data in the "connect_headers" Hash
|
57
|
+
# parameter. This example uses the common get_connection() method to
|
58
|
+
# get a connection.
|
59
|
+
#
|
60
|
+
class ConnectionPutExample
|
61
|
+
# Initialize
|
62
|
+
def initialize
|
63
|
+
end
|
64
|
+
# Run example
|
65
|
+
def run
|
66
|
+
#
|
67
|
+
# Get a connection
|
68
|
+
# ================
|
69
|
+
#
|
70
|
+
conn = get_connection()
|
71
|
+
#
|
72
|
+
# Let's just do some sanity checks, and look around.
|
73
|
+
#
|
74
|
+
raise "Connection failed!!" unless conn.open?()
|
75
|
+
#
|
76
|
+
# The broker _could_ have returned an ERROR frame (unlikely).
|
77
|
+
#
|
78
|
+
raise "Connect error: #{conn.connection_frame.body}" if conn.connection_frame.command == Stomp::CMD_ERROR
|
79
|
+
#
|
80
|
+
puts "Connection complete."
|
81
|
+
#
|
82
|
+
# Get Destination
|
83
|
+
#
|
84
|
+
qname = dest()
|
85
|
+
puts "Destination: #{qname}"
|
86
|
+
#
|
87
|
+
# Set Pace Time
|
88
|
+
#
|
89
|
+
pt = ENV['STOMP_PACETIME'] ? ENV['STOMP_PACETIME'].to_f : 15.0
|
90
|
+
puts "Pace Time: #{pt} seconds"
|
91
|
+
#
|
92
|
+
nm = nmsgs()
|
93
|
+
puts "Number of messages: #{nm}"
|
94
|
+
#
|
95
|
+
ph = {:persistent => true}
|
96
|
+
puts "Put Headers: #{ph}"
|
97
|
+
#
|
98
|
+
# Publish/put messages
|
99
|
+
#
|
100
|
+
puts "\nConnection start puts"
|
101
|
+
1.upto(nm) do |n|
|
102
|
+
data = "message payload: #{n} #{Time.now.to_f}"
|
103
|
+
conn.publish(qname, data, ph)
|
104
|
+
puts "Sent: #{data}"
|
105
|
+
sleep pt
|
106
|
+
end
|
107
|
+
#
|
108
|
+
# Finally disconnect
|
109
|
+
# ==================
|
110
|
+
#
|
111
|
+
conn.disconnect() # Business as usual
|
112
|
+
puts "\nConnection disconnect complete"
|
113
|
+
end
|
114
|
+
end
|
115
|
+
#
|
116
|
+
e = ConnectionPutExample.new()
|
117
|
+
e.run
|
data/examples/conn_putget.rb
CHANGED
@@ -87,11 +87,18 @@ class ConnectionPutGetExample
|
|
87
87
|
#
|
88
88
|
puts "\nConnection start puts"
|
89
89
|
nm = nmsgs()
|
90
|
+
ph = {:persistent => true}
|
91
|
+
ph['suppress_content_length'] = 'yes' if suppresscl()
|
92
|
+
puts "Put Headers: #{ph}"
|
90
93
|
1.upto(nm) do |n|
|
91
94
|
data = "message payload: #{n} #{Time.now.to_f}"
|
92
|
-
conn.publish(qname, data)
|
95
|
+
conn.publish(qname, data, ph)
|
93
96
|
puts "Sent: #{data}"
|
94
97
|
end
|
98
|
+
|
99
|
+
#conn.disconnect()
|
100
|
+
#conn = get_connection()
|
101
|
+
|
95
102
|
puts
|
96
103
|
puts "Connection start receives"
|
97
104
|
# Receives
|
data/examples/contributors.rb
CHANGED
@@ -14,6 +14,18 @@ class UserData
|
|
14
14
|
"UserData: AuthorDate=>#{@ad}, AuthorDate=>#{@ad}, CommitCount =>#{@count}"
|
15
15
|
end
|
16
16
|
end
|
17
|
+
#
|
18
|
+
def partOne()
|
19
|
+
puts "# Contributors"
|
20
|
+
puts
|
21
|
+
puts "## Contributors (by first author date)"
|
22
|
+
puts
|
23
|
+
puts
|
24
|
+
puts "Contribution Information:"
|
25
|
+
puts
|
26
|
+
puts
|
27
|
+
end
|
28
|
+
#
|
17
29
|
# tABLE Data
|
18
30
|
ttab_s = "<table border=\"1\" style=\"width:100%;border: 1px solid black;\">\n"
|
19
31
|
ttab_e = "</table>\n"
|
@@ -32,11 +44,12 @@ td_s = "<td style=\"border: 1px solid black;padding-left: 10px;\" >\n"
|
|
32
44
|
td_e = "</td>\n"
|
33
45
|
#
|
34
46
|
#
|
47
|
+
partOne()
|
35
48
|
userList = {}
|
36
49
|
while s = gets do
|
37
50
|
s.chomp!
|
38
51
|
##puts
|
39
|
-
##puts
|
52
|
+
##puts
|
40
53
|
sa = s.split(" ")
|
41
54
|
## puts sa
|
42
55
|
ad = sa[-1]
|
data/examples/examplogger.rb
CHANGED
@@ -66,14 +66,7 @@ class Slogger
|
|
66
66
|
def _init
|
67
67
|
@log = Logger::new(STDOUT) # User preference
|
68
68
|
@log.level = Logger::DEBUG # User preference
|
69
|
-
|
70
|
-
|
71
|
-
def marshal_dump
|
72
|
-
[]
|
73
|
-
end
|
74
|
-
|
75
|
-
def marshal_load(array)
|
76
|
-
_init
|
69
|
+
@maxml = 100
|
77
70
|
end
|
78
71
|
|
79
72
|
# Log connecting events
|
@@ -98,6 +91,13 @@ class Slogger
|
|
98
91
|
def on_connectfail(parms)
|
99
92
|
begin
|
100
93
|
@log.debug "Connect Fail #{info(parms)}"
|
94
|
+
@log.debug parms
|
95
|
+
@log.debug "Connect Fail Socket status: #{parms[:openstat]}"
|
96
|
+
if parms[:cur_failure]
|
97
|
+
@log.debug "Connect Fail Error Message: #{parms[:cur_failure].message}"
|
98
|
+
btr = parms[:cur_failure].backtrace.join("\n")
|
99
|
+
@log.debug "Backtrace CF: #{btr}"
|
100
|
+
end
|
101
101
|
rescue
|
102
102
|
@log.debug "Connect Fail oops"
|
103
103
|
end
|
@@ -124,6 +124,19 @@ class Slogger
|
|
124
124
|
begin
|
125
125
|
@log.debug "Miscellaneous Error #{info(parms)}"
|
126
126
|
@log.debug "Miscellaneous Error String #{errstr}"
|
127
|
+
@log.debug "Miscellaneous Error All Parms #{parms.inspect}"
|
128
|
+
if parms[:ssl_exception]
|
129
|
+
@log.debug "SSL Miscellaneous Error Parms: #{parms[:ssl_exception]}"
|
130
|
+
@log.debug "SSL Miscellaneous Error Message: #{parms[:ssl_exception].message}"
|
131
|
+
btr = parms[:ssl_execption].backtrace.join("\n")
|
132
|
+
@log.debug "Backtrace SME: #{btr}"
|
133
|
+
end
|
134
|
+
if parms[:cur_failure]
|
135
|
+
@log.debug "SSL Miscellaneous Error Parms2: #{parms[:cur_failure]}"
|
136
|
+
@log.debug "SSL Miscellaneous Error Message2: #{parms[:cur_failure].message}"
|
137
|
+
btr = parms[:cur_failure].backtrace.join("\n")
|
138
|
+
@log.debug "Backtrace SME2: #{btr}"
|
139
|
+
end
|
127
140
|
rescue
|
128
141
|
@log.debug "Miscellaneous Error oops"
|
129
142
|
end
|
@@ -163,8 +176,10 @@ class Slogger
|
|
163
176
|
# Log Receive
|
164
177
|
def on_receive(parms, result)
|
165
178
|
begin
|
166
|
-
@log.debug "Receive
|
167
|
-
|
179
|
+
@log.debug "Receive Message, Command: #{result.command}"
|
180
|
+
pl = result.body.length < @maxml ? result.body.length : @maxml
|
181
|
+
@log.debug "Receive Message, Body: #{result.body[0..pl]}"
|
182
|
+
@log.debug "Receive Message, Headers: #{result.headers}"
|
168
183
|
rescue
|
169
184
|
@log.debug "Receive oops"
|
170
185
|
end
|
@@ -262,7 +277,13 @@ class Slogger
|
|
262
277
|
def on_ssl_connectfail(parms)
|
263
278
|
begin
|
264
279
|
@log.debug "SSL Connect Fail Parms #{info(parms)}"
|
265
|
-
|
280
|
+
if parms[:ssl_exception]
|
281
|
+
@log.debug "SSL Connect Fail Exception Parms: #{parms[:ssl_exception]}"
|
282
|
+
@log.debug "SSL Connect Fail Message: #{parms[:ssl_exception].message}"
|
283
|
+
btr = parms[:ssl_exception].backtrace.join("\n")
|
284
|
+
@log.debug "Backtrace SCF: #{btr}"
|
285
|
+
end
|
286
|
+
|
266
287
|
rescue
|
267
288
|
@log.debug "SSL Connect Fail oops"
|
268
289
|
end
|
@@ -278,6 +299,7 @@ class Slogger
|
|
278
299
|
begin
|
279
300
|
@log.debug "HeartBeat Fire Parms #{info(parms)}"
|
280
301
|
@log.debug "HeartBeat Fire Send/Receive #{srind}"
|
302
|
+
@log.debug "HeartBeat Fire Firedata #{firedata.inspect}"
|
281
303
|
rescue
|
282
304
|
@log.debug "HeartBeat Fire oops"
|
283
305
|
end
|