I have a problem with detecting disconnect event when using BOSH connection.
I'm disabling my Internet connection but nothing happens.
When I'm using simple TCP connection or Proxy everything is going fine.
Maybe I'm wrong in using BOSH connection?
Here's my code:
m_client = new Client(jid, password);
if(useBOSH) // connecting using BOSH
{
ConnectionBOSH *connBOSH = new ConnectionBOSH(m_client, new
ConnectionTLS(m_client, new ConnectionTCPClient(m_client,
m_client->logInstance(), BOSH_host, BOSH_port), m_client->logInstance()),
m_client->logInstance(), BOSH_host, m_client->server());
connBOSH->setPath(BOSH_path);
connBOSH->setMode(ConnectionBOSH::ModePersistentHTTP);
m_client->setConnectionImpl(connBOSH);
}
else // connecting using XMPP
{
ConnectionTCPClient *conntcpclient = new
ConnectionTCPClient(m_client, m_client->logInstance(),
m_client->jid().serverRaw());
m_client->setConnectionImpl(conntcpclient);
}
m_client->registerConnectionListener(this);
m_client->rosterManager()->registerRosterListener(this, false);
m_client->registerMessageSessionHandler(this, Message::Chat); // only
chat messages
m_vcardManager = new VCardManager(m_client);
m_client->registerStanzaExtension(new VCardUpdate());
m_client->registerStanzaExtension(new DelayedDelivery());
m_client->registerPresenceHandler(this);
m_client->registerStanzaExtension(new BlockExtension(new
Tag("blocklist")));
m_client->registerIqHandler(this, ExtBlocked);
if(useBOSH)
m_client->setTls(TLSDisabled);
else
m_client->setTls(TLSRequired);
Hope for some help :)
--
Best regards,
Dmitry A. Shashkin