Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于XMPP BOSH预绑定以返回SID和RID的Node.js解决方案_Javascript_Node.js_Xmpp - Fatal编程技术网

Javascript 用于XMPP BOSH预绑定以返回SID和RID的Node.js解决方案

Javascript 用于XMPP BOSH预绑定以返回SID和RID的Node.js解决方案,javascript,node.js,xmpp,Javascript,Node.js,Xmpp,我需要在服务器端验证Openfire XMPP会话,并将会话传递给strophe.js。但是,我找不到一个有效的预绑定库 我一直在与的维护人员合作,但我们无法解决以下问题: var XMPP = require('node-xmpp-client') var prebind = new XMPP({ jid: 'metalaureate@localhost', password: 'holonarchy', wait: 60, bosh: {

我需要在服务器端验证Openfire XMPP会话,并将会话传递给strophe.js。但是,我找不到一个有效的预绑定库

我一直在与的维护人员合作,但我们无法解决以下问题:

var XMPP = require('node-xmpp-client')


var prebind = new XMPP({
    jid: 'metalaureate@localhost',
    password: 'holonarchy',
    wait: 60,
    bosh: {
        url: 'http://localhost:7070/http-bind/',
        prebind: function(error, data) {
            if (error) throw new Error(error);
            console.log(data);
            return data
            /*
                data.sid
                data.rid
             */
        }
    }
})

prebind.on('online', function() { console.log('Connected') });
我使用Wireshark验证是否将正确的节发送到BOSH端点,Openfire是否返回正确的响应,但模块从未返回回调

发送:

收到:

<body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams" from="localhost" authid="8bdd62a3" sid="8bdd62a3" secure="true" requests="2" inactivity="30" polling="5" wait="10" hold="1" ack="1836153693" maxpause="300" ver="1.6">


是否有任何解决方法或了解其他可以进行预绑定的节点库?

我希望此链接能帮助您,请参考:

 var XMPP = require('node-xmpp-client');
    var prebind = new XMPP({
        jid: 'test@localhost',
        password: 'xxx',
        preferred: 'PLAIN',
        wait: 10,
        bosh: {
            url: 'http://localhost:5280/http-bind/',
            prebind: function (error, data) {
                if (error) throw new Error(error);
                data.jid = 'test@localhost';
                console.log(data);
                **return res.send(data);**
            }
        },
        reconnect: true

    });