Welcome, guest | Sign In | My Account | Store | Cart
# The exchange process which everything connects to.

import netsvc
import signal
 
dispatcher = netsvc.Dispatcher()
dispatcher.monitor(signal.SIGINT)
 
exchange = netsvc.Exchange(netsvc.EXCHANGE_SERVER)
exchange.listen(11111)
 
dispatcher.run()

# Service which periodically publishes information.

import netsvc
import signal
import random
 
class Publisher(netsvc.Service):
 
  def __init__(self):
    netsvc.Service.__init__(self,"SEED")
    self._count = 0
    time = netsvc.DateTime()
    data = { "time": time }
    self.publishReport("init",data,-1)
    self.startTimer(self.publish,1,"1")
 
  def publish(self,name):
    self._count = self._count + 1
    time = netsvc.DateTime()
    value = int(0xFFFF*random.random())
    data = { "time": time, "count": self._count, "value": value }
    self.publishReport("next",data)
    self.startTimer(self.publish,1,"1")
 
dispatcher = netsvc.Dispatcher()
dispatcher.monitor(signal.SIGINT)
 
exchange = netsvc.Exchange(netsvc.EXCHANGE_CLIENT)
exchange.connect("localhost",11111,5)
 
publisher = Publisher()
 
dispatcher.run()

# Service which subscribes to published information.

import netsvc
import signal
 
class Subscriber(netsvc.Service):
 
  def __init__(self):
    netsvc.Service.__init__(self)
    self.monitorReports(self.seed,"SEED","next")
 
  def seed(self,service,subjectName,content):
    print "%s - %s" % (content["time"],content["value"])
 
dispatcher = netsvc.Dispatcher()
dispatcher.monitor(signal.SIGINT)
 
exchange = netsvc.Exchange(netsvc.EXCHANGE_CLIENT)
exchange.connect("localhost",11111,5)
 
subscriber = Subscriber()
 
dispatcher.run()

History