XMPP strophe 连接附加过程失败

Posted

技术标签:

【中文标题】XMPP strophe 连接附加过程失败【英文标题】:XMPP strophe Connection attach process failed 【发布时间】:2011-09-13 10:14:40 【问题描述】:

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

提前致谢。

【问题讨论】:

你得到解决方案了吗? 【参考方案1】:

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

【讨论】:

【参考方案2】:

请务必检查邮件正文。一些 XMPP 服务器在终止时返回 HTTP 404。

【讨论】:

以上是关于XMPP strophe 连接附加过程失败的主要内容,如果未能解决你的问题,请参考以下文章

xmpp openfire 未验证我稍后用于 strophe 附加的 php 脚本

如何 xmpp 网络聊天多个选项卡

XMPP Web 客户端(使用 strophe.js)花时间连接 ejabberd 服务器

XMPP 会话附件

无法在 windows phone 7.5(vs2010) 上使用 strophe.js 保持与 XMPP 服务器的连接

xmpp strophe 用户注销时接收通知订阅