| 25 | |
| 26 | |
| 27 | class Client(MessagingHandler): |
| 28 | def __init__(self, url, requests): |
| 29 | super(Client, self).__init__() |
| 30 | self.url = url |
| 31 | self.requests = requests |
| 32 | |
| 33 | def on_start(self, event): |
| 34 | self.sender = event.container.create_sender(self.url) |
| 35 | self.receiver = event.container.create_receiver(self.sender.connection, None, dynamic=True) |
| 36 | |
| 37 | def next_request(self): |
| 38 | if self.receiver.remote_source.address: |
| 39 | req = Message(reply_to=self.receiver.remote_source.address, body=self.requests[0]) |
| 40 | self.sender.send(req) |
| 41 | |
| 42 | def on_link_opened(self, event): |
| 43 | if event.receiver == self.receiver: |
| 44 | self.next_request() |
| 45 | |
| 46 | def on_message(self, event): |
| 47 | print("%s => %s" % (self.requests.pop(0), event.message.body)) |
| 48 | if self.requests: |
| 49 | self.next_request() |
| 50 | else: |
| 51 | event.connection.close() |
| 52 | |
| 53 | |
| 54 | REQUESTS = ["Twas brillig, and the slithy toves", |