Thanks ken, This looks very helpful - we will try it. In addition - who can we talk to about the java binding for qpid-proton (AMQP 1.0),
Thanks Barak Azulay ----- Original Message ----- > From: "Ken Giusti" <[email protected]> > To: [email protected], "Saggi Mizrahi" <[email protected]> > Cc: "Piotr Kliczewski" <[email protected]>, "Barak Azulay" > <[email protected]> > Sent: Thursday, January 23, 2014 4:24:00 PM > Subject: Re: Protocol detection > > Hi Saggi > > Sounds like you need to handle all the socket i/o directly, rather than > having Proton do it "under the covers", right? > > To do this, you'll need to avoid using the Driver and Connector and Listener > classes from the Python binding - these classes perform all socket > management and I/O, for those apps which want to let proton handle it. > > What you'll need to do is use the proton Transport class to pass network data > into and out of the Proton protocol Engine. There are no callbacks - you'll > have to call into Proton, sending it bytes you've pulled from the network, > and asking Proton if it has any data to send. You then have to perform the > socket I/O yourself. > > I've written some python code that does exactly that - you might find it a > useful example. See: > > https://github.com/kgiusti/fusion > > And, specifically on how to do socket I/O, take a look here: > > https://github.com/kgiusti/fusion/blob/master/python/sockets.py > > The "connection" in the read/write_socket* methods in sockets.py is an > instance of the Connection object from here: > > https://github.com/kgiusti/fusion/blob/master/python/connection.py > > Which contains an instance of the Proton::Transport. You can see how I use > the Transport API to feed/read bytes to/from Proton. > > Let me know if that helps, > > > Also, here's a couple of docs describing Proton's architecture and the engine > model, if you're interested. > > https://cwiki.apache.org/confluence/display/qpid/Protocol+Engines > https://cwiki.apache.org/confluence/display/qpid/Proton+Architecture > > ----- Original Message ----- > > From: "Saggi Mizrahi" <[email protected]> > > To: [email protected] > > Cc: "Piotr Kliczewski" <[email protected]>, "Barak Azulay" > > <[email protected]> > > Sent: Wednesday, January 22, 2014 7:03:37 AM > > Subject: Protocol detection > > > > Hi, I'm from the VDSM project which is part of oVirt. > > We are in the process of adding multiple protocol support > > one of which is AMQP 1.0 though the proton library. > > > > We want to keep only requiring one port so our solution is > > to "peek" at the stream, detect the protocol and then pass > > it to the proper protocol implementation. > > > > So, in order to support SSL we have to do the SSL > > negotiation ourselves and pass read\write callbacks > > since we keep the SSL state of the session. > > > > We've been trying to get this to work with the proton-python > > bindings but there doesn't seem to be a way to pass our own > > read\write callbacks. > > > > Is there something were missing, is it something that's even > > planned\wanted? > > > > Thanks > > > > -- > -K >
