我在openFire服务器上使用strophe.js。 使用过像这样的openConnection。
openConnection: function () {
//alert("Called.....");
if (OFConnect.connection != null) return;
var conn = new Strophe.Connection(OFConnect.xmppHttpBindUrl);
OFConnect.connection = conn;
//OFConnect.services = toResource;
conn.connect(OFConnect.userName + '@' + OFConnect.openfireDomainURL + '/' + OFConnect.classId, OFConnect.password, function (status) {
alert(status);
if (status === Strophe.Status.CONNECTED) {
jQuery(document).trigger('connected');
} else if (status === Strophe.Status.DISCONNECTED) {
jQuery(document).trigger('disconnected');
} else if (status === Strophe.Status.CONNFAIL) {
alert("XMPP Connection Failed.......");
} else if (status === Strophe.Status.AUTHENTICATING) {
alert("XMPP AUTHENTICATING.......");
} else if (status === Strophe.Status.AUTHFAIL) {
alert("XMPP AUTHENTICATING Failed......");
} else if (status === Strophe.Status.ERROR) {
alert("XMPP ERRROR......");
} else if (status === Strophe.Status.ATTACHED) {
jQuery(document).trigger('attached');
} else if (status === Strophe.Status.CONNFAIL) {}
});
}
};
现在问题是有些情况下OPENFIRE SERVER IS DOWN
。如果服务器无法访问/关闭/错误链接,我需要执行特定活动。
在这种情况下,上述代码的问题是它返回Strophe.Status.CONNECTING
而不是连接失败。
如何确定链接是否已关闭。
请帮助!!: - (
答案 0 :(得分:2)
你使用什么版本的Strophe?
在1.0.2中,您可以通过修改_doDisconnect()
来解决这个问题,以便无条件地调用this._changeConnectStatus(Strophe.Status.DISCONNECTED, null)
。
Strophe 1.1.1似乎做了那个框(只看了代码,没试过)。