Thank you very much for the detailed explanation. I managed to get this going quite simply:
1) Added a pure virtual method on connection_engine, connection_engine::tick(). 2) Added a public function pn_timestamp_t connection_engine::tick_check(pn_timestamp_t now) 3) Added some logic to connection_engine::dispatch that checks pn_event_type for whether it's a PN_TRANSPORT event, and if so sets a boolean to call the connection_engine::tick() method. 4) Implemented the connection_engine::tick() method in my derived class, which gets the current time in milliseconds, then calls connection_engine::tick_check(now). If the returned value is greater than zero a timer is setup for the number of milliseconds returned, which on expiry calls the tick() method in the derived class. With these four steps the underlying transport sends heartbeats at half of the remote_idle_timeout specified in the response to the connect packet. Thanks again, Toby -- View this message in context: http://qpid.2158936.n2.nabble.com/Azure-Service-Bus-receiver-timing-out-with-electron-go-binding-tp7651057p7651625.html Sent from the Apache Qpid developers mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org