Will use XEP-0199 ping for keep-alive only if it is supported by the server.
This commit is contained in:
parent
8a22060aa8
commit
60d0279e08
|
@ -53,6 +53,26 @@ module.exports = function (XMPP, eventEmitter) {
|
|||
this.connection.sendIQ(iq, success, error, timeout);
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks if given <tt>jid</tt> has XEP-0199 ping support.
|
||||
* @param jid the JID to be checked for ping support.
|
||||
* @param callback function with boolean argument which will be
|
||||
* <tt>true</tt> if XEP-0199 ping is supported by given <tt>jid</tt>
|
||||
*/
|
||||
hasPingSupport: function (jid, callback) {
|
||||
this.connection.disco.info(
|
||||
jid, null,
|
||||
function (result) {
|
||||
var ping = $(result).find('>>feature[var="urn:xmpp:ping"]');
|
||||
callback(ping.length > 0);
|
||||
},
|
||||
function (error) {
|
||||
console.error("Ping feature discovery error", error);
|
||||
callback(false);
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* Starts to send ping in given interval to specified remote JID.
|
||||
* This plugin supports only one such task and <tt>stopInterval</tt>
|
||||
|
|
|
@ -87,7 +87,17 @@ function connect(jid, password) {
|
|||
|
||||
console.info("My Jabber ID: " + connection.jid);
|
||||
|
||||
connection.ping.startInterval(config.hosts.domain);
|
||||
// Schedule ping ?
|
||||
var pingJid = config.hosts.domain;
|
||||
connection.ping.hasPingSupport(
|
||||
pingJid,
|
||||
function (hasPing) {
|
||||
if (hasPing)
|
||||
connection.ping.startInterval(pingJid);
|
||||
else
|
||||
console.warn("Ping NOT supported by " + pingJid);
|
||||
}
|
||||
);
|
||||
|
||||
if (password)
|
||||
authenticatedUser = true;
|
||||
|
|
Loading…
Reference in New Issue