class Broker(object): def __init__(self): self.messageQueue = Queue() self.netReader = IO_Network(BROKER_PORT, 'localhost') self.netReader.bind() self.netWriter = IO_Network(DEFAULT_PORT, 'localhost') self.subscribers = [] def listen(self): while True: msg = self.netWriter.read(None) self.messageQueue.put(msg) def send(self): while True: msg = self.messageQueue.get() if msg.type == 'subscription': self.subscribers.append(msg.body) elif msg.type == 'message': for subscriber in self.subscribers: if subscriber.id == msg.receiver: self.netWriter.port = subscriber.port self.netWriter.host = subscriber.ip break if msg.body == 'close': self.netWriter.write(msg.receiver, msg) self.netReader.close_socket() self.netWriter.close_socket() def main(self): print 'here' thread.start_new_thread(self.listen, ()) # thread.start_new_thread(self.send, ()) self.send()
class Receiver(object): def __init__(self): self.netReader = IO_Network(DEFAULT_PORT, 'localhost') self.netReader.bind() self.netWriter = IO_Network(BROKER_PORT, 'localhost') self.fileWriter = IO_File() print 'Socket bind complete' def listen(self): while True: msg = self.netReader.read(None) print '\nReceived message:{0}'.format(msg.body) self.fileWriter.write('received.xml', msg.body) def send(self): myself = Subscriber() myself.port = DEFAULT_PORT myself.ip = 'localhost' myself.id = 'app2' message = Message() message.type = 'subscription' message.senderID = 'app2' message.receiverID = 'broker' message.body = myself self.netWriter.write('broker', message)
class Receiver(object): def __init__(self): self.netReader = IO_Network(DEFAULT_PORT, 'localhost') self.netReader.bind() self.netWriter = IO_Network(BROKER_PORT, 'localhost') print 'Socket bind complete' def listen(self): while True: msg = self.netReader.read(None) if msg.body == 'close': self.netWriter.close_socket() self.netReader.close_socket() print '\nReceived message:{0}'.format(msg.body) def send(self): myself = Subscriber() myself.port = DEFAULT_PORT myself.ip = 'localhost' myself.id = 'sender' message = Message() message.type = 'subscription' message.senderID = 'sender' message.receiverID = 'receiver' message.body = myself self.netWriter.write('broker', message)
class Broker(object): def __init__(self): self.messageQueue = Queue() self.netReader = IO_Network(BROKER_PORT, 'localhost') self.netReader.bind() self.netWriter = IO_Network(DEFAULT_PORT, 'localhost') self.subscribers = [] def listen(self): while True: msg = self.netReader.read(None) self.messageQueue.put(msg) def send(self): while True: msg = self.messageQueue.get() if msg.type == 'subscription': print 'received subscription from: ' + msg.senderID self.subscribers.append(msg.body) elif msg.type == 'message': for subscriber in self.subscribers: if subscriber.id == msg.receiverID: self.netWriter.port = subscriber.port self.netWriter.host = subscriber.ip print 'message for ' + str(subscriber) self.netWriter.write(msg.receiverID, msg) break def main(self): print 'here' thread.start_new_thread(self.send, ()) self.listen()