Class: ONVIF::EventAction::Subscribe
- Defined in:
- lib/ruby_onvif_client/event_handing/subscribe.rb
Instance Method Summary collapse
Methods inherited from Action
#attribute, #callback, #create_event_onvif_message, #create_media_onvif_message, #create_ptz_onvif_message, #initialize, #send_message, #value
Constructor Details
This class inherits a constructor from ONVIF::Action
Instance Method Details
#run(options, cb) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ruby_onvif_client/event_handing/subscribe.rb', line 6 def run , cb = Message.new namespaces: {:'xmlns:wsdl' => 'http://www.onvif.org/ver10/events/wsdl', :'xmlns:a' => "http://www.w3.org/2005/08/addressing", 'xmlns:b' => "http://docs.oasis-open.org/wsn/b-2"} .body = ->(xml) do xml.b(:Subscribe) do xml.b(:ConsumerReference) do xml.a :Address, [:address] end xml.b :InitialTerminationTime , [:initial_termination_time] end end do |success, result| if success xml_doc = Nokogiri::XML(result[:content]) addresses = [] xml_doc.xpath('//tev:SubscriptionReference').each do |node| addresses << value(node, 'wsa5:Address') end res = {} puts addresses res[:addresses] = addresses current_time = xml_doc.xpath('//wsnt:CurrentTime').first.content termination_time = xml_doc.xpath('//wsnt:TerminationTime').first.content puts current_time, termination_time res[:current_time] = current_time res[:termination_time] = termination_time callback cb, success, res else callback cb, success, result end end end |