On 08/05/2020 3:57 pm, Michael Ivanov wrote:
I am using pn_messenger_t interface in my private select-based event loop.
I use pn_selectable_t to trigger actual i/o.
As far as I have seen in proton/c source pn_transport_tick is invoked only
from pni_messenger_tick, which is in turn called from pn_messenger_process
only. I do not call the latter explicitly and I do not invoke anything
to set any idle timeout interval inside pn_messenger.
pn_transport_tick() just invokes function, pointed to by process_tick of
pn_io_layer_t structure: but I could not find where this field is set.
Ok, I'm not sure if heartbeats have been thought through for the
messenger interface, particularly where you are driving the io yourself.
Can I use pn_message_t to send heartbeat explicitly?
Heartbeats are only needed in the absence of other traffic, so if you
send messages frequently enough there is no need for heartbeats.
I suspect there is no way of reading the idle-timeout advertised by the
broker through the messenger interface, but from the protocol trace it
is 1 minute. So if you send messages more frequently than that it will
not disconnect you (in practice it is likely to wait double that timeout
before giving up).
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org