Forum: Ruby dynamic status updates using net-mdns bonjour messaging

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Doug Beaver (Guest)
on 2005-12-17 23:16
(Received via mailing list)
hello,

i'm exploring using net-mdns 0.2 (written by sam roberts) to do some
bonjour work.  i'm curious if anyone has figured out how to make a
bonjour service dynamically update its TXT record.

i'm starting to write a dummy chat client/server just to test the apis
out, and while i can easily find lists of all the servers out there, i'm
having difficulty getting my servers to broadcast updates about their
status.

here's a hack i did in order to simulate dynamic updates, i just create
a new service each time i want to send an update:

----

require 'net/dns/resolv-mdns'
require 'net/dns/resolv-replace'
require 'net/http'

args = ["service1", "_chatter._tcp", 8000, nil]

i = 0
announce = nil

loop do
  announce.stop unless announce.nil?
  announce = Net::DNS::MDNS::Service.new(*args) do |s|
    s.ttl = 5
    s["status"] = i.to_s
  end

  i += 1
  sleep 1
end

----

i'm using mdns-watch.rb from net-mdns's samples/ directory, and i see
the proper TXT updates going out, but i'm wondering if there's a way to
do this without having to stop the service every time.

i tried just doing 'announce["status"] = i.to_s' inside my loop, but i
never see updates, the only way i could make the bonjour records get
broadcast was to create a new service object every time.

does anyone have any suggestions?  btw, thanks to sam for creating such
a cool module, i'm having a lot of fun working with it.

doug
This topic is locked and can not be replied to.