I dont know much about Connection Driver, or C in general, but 'tick'ing is the route to provoke heartbeat generation (and also part of enforcing lack of received traffic to satisfy any idle-timeout the local transport has adverised) by the transport.
They will only be generated if actually requested by the other side, i.e based on the peers advertised idle-timeout in the Open frame they sent, and only when required (i.e lack of other live traffic flow resulting in being idle long enough) at the point the method is being run (indicated by the arg). The return from 'tick' indicates the next point it needs to be run to decide what to do to ensure the local and/or remote idle-timeout requirements are satisfied/enforced. If heartbeat output is generated, you'll need to send the resulting transport output as at other points. Robbie On Mon, 17 Jun 2019 at 08:33, Schaik, Jacco van <jacco.van.sch...@nlr.nl> wrote: > > Hi, > > I'm building an application using the Qpid Proton C API, version 0.28.0. I'm > using a Connection Driver because my application has its own event loop.? > > Everything seems to be working, but the application on the other side of the > connection has an idle timeout, so if nothing comes over the line for (in my > case) 30 seconds it times out and drops the connection. I know AMQP has > heartbeat messages that can be used to keep the connection open, but > obviously Proton doesn't get a chance to send them when I'm waiting in my own > event loop. > > Now I can have my event loop wake up every now and then, and call a Proton > function to send a heartbeat. But I haven't been able to find a function that > does that?. I've tried calling pn_transport_tick() but that doesn't seem to > work. Is there some other function that will send a heartbeat for me? > > > Any info greatly appreciated. > > > Regards, Jacco --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org For additional commands, e-mail: users-h...@qpid.apache.org