smsc_manager 0.4.2 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.txt CHANGED
@@ -1,3 +1,7 @@
1
+ Version 0.4.3
2
+ improve om server and message handling characteristics
3
+
4
+
1
5
  Version 0.4.2
2
6
 
3
7
  Activemq support for broacast... other stuff. stomp control file to start/stop projects
@@ -2,6 +2,8 @@ require 'yaml'
2
2
  require 'rubygems'
3
3
  gem 'stomp'
4
4
  require 'stomp'
5
+ gem 'stomp_message'
6
+ require 'stomp_message'
5
7
  # This sends the sms to a activemq topic
6
8
  module SmscManager
7
9
  class SmsSendTopic
@@ -28,9 +30,10 @@ class SmsSendTopic
28
30
  end #send_sms
29
31
  def send_topic(sms)
30
32
  #sms=SmscManager::Sms.new(text,destination,source)
31
- msgbody=sms.to_xml
33
+ # msgbody=sms.to_xml
34
+ m=StompMessage::Message.new('stomp_SMS', sms.to_xml)
32
35
  # puts "message body is #{msgbody}"
33
- self.conn.send @@TOPIC, msgbody, {'persistent'=>'false'}
36
+ self.conn.send @@TOPIC, m.to_xml, {'persistent'=>'false'}
34
37
  end #send_sms
35
38
  end # smsc listener
36
39
 
@@ -2,17 +2,21 @@ require 'yaml'
2
2
  require 'rubygems'
3
3
  gem 'stomp'
4
4
  require 'stomp'
5
-
5
+ gem 'stomp_message'
6
+ require 'stomp_message'
6
7
  module SmscManager
7
8
  class SmsStatisticsListener
8
9
  @@MAX_THROUGHPUT =5 # in messages per second
9
- attr_accessor :conn, :count, :source
10
+ attr_accessor :conn, :count, :source, :topic
10
11
  #need to define topic, host properly
11
- @@TOPIC='/topic/sms'
12
+
13
+ @debug=false
12
14
  def initialize
15
+ self.topic='/topic/sms'
16
+ puts "in intialize topic #{self.topic}"
13
17
  self.conn = Stomp::Connection.open '', '', 'localhost', 61613, false
14
18
  self.count = 0
15
- self.conn.subscribe @@TOPIC, { :ack =>"auto" }
19
+ self.conn.subscribe self.topic, { :ack =>"auto" }
16
20
  self.source ={}
17
21
  puts "finished initializing"
18
22
  end
@@ -21,13 +25,28 @@ class SmsStatisticsListener
21
25
  self.source[sms.source] = 0 if !self.source.key?(sms.source)
22
26
  self.source[sms.source] += 1
23
27
  end
24
- def report
25
- puts "SMS OM Report: #{Time.now}"
28
+ def stomp_REPORT(msg)
29
+ puts "#{self.topic} OM Report: #{Time.now}"
26
30
  puts "message count is: #{count}"
27
31
  self.source.each_pair {|i,val|
28
32
  puts " source #{i} count #{val}"
29
33
  }
30
34
  end
35
+ def stomp_SMS(msg)
36
+ puts "msg command #{msg.command} msg body #{msg.body}"
37
+ sms=SmscManager::Sms.load_xml(msg.body)
38
+ statistics(sms)
39
+ puts "#{self.topic} OM report stomp_SMS" if @debug
40
+ stomp_REPORT(msg) if self.count % 100 == 0
41
+ end
42
+ def stomp_DEBUG(msg)
43
+ @debug=!@debug
44
+ puts "debug flag is now #{@debug}"
45
+ end
46
+ def method_missing(name, *args)
47
+ puts "Method missing called: #{name}"
48
+ puts "Likely invalid message recived"
49
+ end
31
50
  def run
32
51
  # Thread.new {
33
52
  while true #loop forever
@@ -35,12 +54,14 @@ class SmsStatisticsListener
35
54
  msg = self.conn.receive
36
55
  # puts "after receive"
37
56
  begin
38
- sms=SmscManager::Sms.load_xml(msg.body)
39
- statistics(sms)
40
- report if self.count % 100 == 0
41
- # puts "sms text is: #{sms.text} dest is: #{sms.destination} result is: #{res}"
57
+ puts "STOMP message frame is : #{msg} "
58
+ m=StompMessage::Message.load_xml(msg.body)
59
+ # puts "Message is: #{m.to_xml}" if @debug
60
+ puts "Message type is #{m.command}" if @debug
61
+ self.send(m.command,m)
42
62
  rescue Exception => e
43
- puts "exception found #{e.backtrace}"
63
+ puts "exception found #{e.backtrace}"
64
+ puts "exception messae #{e.msg}"
44
65
  end
45
66
  end # while
46
67
  # }
@@ -2,7 +2,9 @@ require 'yaml'
2
2
  require 'rubygems'
3
3
  gem 'stomp'
4
4
  require 'stomp'
5
-
5
+ require 'stomp'
6
+ gem 'stomp_message'
7
+ require 'stomp_message'
6
8
  module SmscManager
7
9
  class SmscListener
8
10
  @@MAX_THROUGHPUT =5 # in messages per second
@@ -10,6 +12,7 @@ class SmscListener
10
12
  attr_accessor :conn, :smsc, :count
11
13
  #need to define topic, host properly
12
14
  @@TOPIC='/topic/sms'
15
+ @debug=false
13
16
  def initialize
14
17
  self.conn = Stomp::Connection.open '', '', 'localhost', 61613, false
15
18
  self.count = 0
@@ -17,16 +20,34 @@ class SmscListener
17
20
  self.smsc=SmscManager::SmscConnection.factory
18
21
  puts "finished initializing"
19
22
  end
23
+ # name is message command
24
+ def stomp_SMS(msg)
25
+ sms=SmscManager::Sms.load_xml(msg.body)
26
+ puts "sending sms #{msg.body}"
27
+ res= self.smsc.send(sms)
28
+
29
+ sleep(SLEEP_TIME) #only 5 messages per second max
30
+ end
31
+ def stomp_DEBUG(msg)
32
+ @debug=!@debug
33
+ puts "debug flag is now #{@debug}"
34
+ end
35
+ def method_missing(name, *args)
36
+ puts "Method missing called: #{name}"
37
+ puts "Likely invalid message recived"
38
+ end
20
39
  def run
21
40
 
22
41
  while true #loop forever
23
42
  # puts "before receive"
24
43
  msg = self.conn.receive
25
44
  # puts "after receive"
26
- begin
27
- sms=SmscManager::Sms.load_xml(msg.body)
28
- res= self.smsc.send(sms)
29
- sleep(SLEEP_TIME) #only 5 messages per second max
45
+ begin
46
+ # puts "STOMP message frame is : #{msg} " if @debug
47
+ m=StompMessage::Message.load_xml(msg.body)
48
+ # puts "Message is: #{m.to_xml}" if @debug
49
+ puts "Message type is #{m.command}" if @debug
50
+ self.send(m.command,m) # effectively case statement (Should SCREEN HERE)
30
51
  # puts "sms text is: #{sms.text} dest is: #{sms.destination} result is: #{res}"
31
52
  rescue Exception => e
32
53
  puts "exception found #{e.backtrace}"
@@ -2,7 +2,7 @@ module SmscManager #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 4
5
- TINY = 2
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: smsc_manager
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.4.2
6
+ version: 0.4.4
7
7
  date: 2007-09-19 00:00:00 +08:00
8
8
  summary: connection to smsc via http using kannel
9
9
  require_paths: