The following Python code using the Qpid Proton library works with the Hono Sandbox.
from __future__ import print_function, unicode_literals
from proton import Message
from proton.handlers import MessagingHandler
from proton.reactor import Container
class HelloWorld(MessagingHandler):
def __init__(self, server, address):
super(HelloWorld, self).__init__()
self.server = server
self.address = address
def on_start(self, event):
print("connecting ...")
conn = event.container.connect(self.server, sasl_enabled=True, allowed_mechs="PLAIN", allow_insecure_mechs=True, user="[email protected]", password="verysecret")
event.container.create_sender(conn, self.address)
def on_sendable(self, event):
print("sending command")
event.sender.send(Message(body="Hello World!", address="command/DEFAULT_TENANT/4711", content_type="text/plain", subject="call"))
event.sender.close()
event.connection.close()
Container(HelloWorld("amqp://hono.eclipseprojects.io:15672", "command/DEFAULT_TENANT")).run()
I guess in your code you are mainly missing to set the SASL properties. I also think that the username and password should better be set explicitly instead of as part of the URL because the username contains a @
character which also seems to be used in the URL as a delimiter.
CLICK HERE to find out more related problems solutions.