OpenFire внутриполосная регистрация (XEP-0077): <stream:features> не содержит тег регистра, даже при том, что внутриполосная регистрация включена

Я выполняю openfire сервер на облаке Amazon Web Services EC2 и записал, что немного strophe.js привело в действие xmpp клиент, чтобы соединиться с сервером и отправить сообщения назад и вперед. Это хорошо работает.

Однако я также хочу сделать внутриполосную регистрацию (XEP-0077) с этим клиентом. Для этого я пытаюсь использовать strophe.register.js.

Вот код, который я использую:

        var tempConn = new Strophe.Connection("http://myAWSDNS.compute.amazonaws.com:7070/http-bind/");
        tempConn.register.connect("http://myAWSDNS.us-west-2.compute.amazonaws.com/", function (status) {
        if (status === Strophe.Status.REGISTER) {
            // fill out the fields
            connection.register.fields.username = "juliet";
            connection.register.fields.password = "R0m30";
            // calling submit will continue the registration process
            connection.register.submit();
        } else if (status === Strophe.Status.REGISTERED) {
            console.log("registered!");
            // calling login will authenticate the registered JID.
            connection.authenticate();
        } else if (status === Strophe.Status.CONFLICT) {
            console.log("Contact already existed!");
        } else if (status === Strophe.Status.NOTACCEPTABLE) {
            console.log("Registration form not properly filled out.")
        } else if (status === Strophe.Status.REGIFAIL) {
            console.log("The Server does not support In-Band Registration")
        } else if (status === Strophe.Status.CONNECTED) {
            // do something after successful authentication
        } else {
            // Do other stuff
        }
    });

Я включил внутриполосную регистрацию на openfire сервере (см. изображение),

Однако я всегда произвожусь: "Сервер не поддерживает Внутриполосную Регистрацию" (т.е. состояние === Строфа. Состояние. REGIFAIL.

Я ступил в код strophe.register.js и вижу, что он пытается найти тег регистра в <stream:features>, но наклон находит его, и устанавливает состояние на REGIFAIL затем.

var register, mechanisms;
    register = bodyWrap.getElementsByTagName("register");
    mechanisms = bodyWrap.getElementsByTagName("mechanism");
if (register.length === 0) {
        that._changeConnectStatus(Strophe.Status.REGIFAIL, null);
        return;

Это - xml, который я получаю, который содержит потоковые функции:

<body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams" from="win-lv4k7bsupjo" authid="747df9ee" sid="747df9ee" secure="true" requests="2" inactivity="30" polling="5" wait="60" hold="1" ack="913534085" maxpause="300" ver="1.6"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism><mechanism>CRAM-MD5</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features></body>

Поскольку Вы видите, что это содержит набор механизмов, но никакую часть регистра.

Так, мой вопрос: Почему это не содержит тег регистра, если я включил внутриполосную регистрацию, и, как я могу установить его для включения этого тега регистра, таким образом, я могу сделать внутриполосную регистрацию?

Любая справка ценится!

Спасибо,

с уважением,

Chris

0
задан 17 September 2014 в 00:39
1 ответ

Пробовали ли вы включить http: // в свой Strophe. Подключение, полный URL + ": 7070 / http-bind /"

например. Strophe.Connection (" http://myAWSDNS.compute.amazonaws.com:7070/http-bind/ ")

, а также комментарий в strophe.register

/ * if (register .length === 0) { that._changeConnectStatus (Strophe.Status.REGIFAIL, ноль); возвращение; } else * / this.enabled = true;

работал у меня.

с уважением, Маринус

0
ответ дан 5 December 2019 в 13:19

Теги

Похожие вопросы