connection - XMPP strophe 连接附加过程失败

标签 connection xmpp strophe

我能够在页面加载时创建 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)。有什么想法吗?

提前致谢。

最佳答案

你不应该相信卸载。而是在 xmpp 服务器的每个 cb 上存储/更新您的 RID。确保您的 RID 在每次调用时也增加。

关于connection - XMPP strophe 连接附加过程失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7400180/

相关文章:

java - H2数据库连接字符串

javascript - 除非我触发连接回调两次,否则使用 strope Attach() 而不是 connect() 不起作用

php - 如何使用 JAXL 库发送/接收聊天消息(XMPP 技术、PHP、Openfire 服务器)

xmpp - 使用 strope.js 和旁遮普语将 Google Talk 集成到网络应用程序

javascript - Strophe.muc 插件和主干不正确的回调绑定(bind)

c# - 使用 C# 2010 连接到 SQL Server 2008 的小问题

http - tcp 和 http 连接监听器是否可以相互交互?

redis - 为什么要从 ServiceStack/Service.cs 文件中删除 RedisManager 属性?

javascript - Websocket 无法使用 firefox 连接到 openfire

ios - 由于失去连接而丢失消息 xmpp