我可以在页面加载时创建XMPP连接。但是,每当我移动到另一个页面时,我想使用相同的连接来删除客户端中的重复通知。我使用了以下代码。
$(document).bind('connect', function (ev, data) {
var jid = $.jStorage.get('JID', null);
var sid = $.jStorage.get('SID', null);
var rid = $.jStorage.get('RID', null);
if ((jid != null) && (sid != null) && (rid != null)) {
var conn = new Strophe.Connection("http://localhost:5280/xmpp-httpbind");
conn.attach(jid, sid, rid, function () {
alert('Connection attach success.');
Gab.connection = conn;
});
}
else {
var conn = new Strophe.Connection("http://localhost:5280/xmpp-httpbind");
conn.connect(data.jid, data.password, function (status) {
if (status === Strophe.Status.CONNECTED) {
$(document).trigger('connected');
} else if (status === Strophe.Status.DISCONNECTED) {
$(document).trigger('disconnected');
}
});
Gab.connection = conn;
}
});
在卸载中:
$(window).unload(function () {
if (Gab.connection != null) {
Gab.connection.pause();
$.jStorage.set('JID', Gab.connection.jid);
$.jStorage.set('SID', Gab.connection.sid);
$.jStorage.set('RID', Gab.connection.rid);
} else {
$.jStorage.flush();
}
// Gab.connection = null;
alert('paused/disconnected');
})
它附加到连接,但是只要它连接,就会在Firebug控制台中显示(POST http://localhost:5280/xmpp-httpbind 404 Not Found 36ms)。有什么想法吗?
提前致谢。
答案 0 :(得分:0)
确保检查邮件正文。某些XMPP服务器在终止时返回HTTP 404。
答案 1 :(得分:0)
你不应该信任卸载。而是在xmpp服务器上的每个cb上存储/更新您的RID。确保您的RID在每次通话时都会增加。