Внутриполосная регистрация Strophe.js

Я знаю, что есть много других вопросов, связанных с внутриполосной регистрацией strophe и XEP 0077, но мой вопрос заключается в следующем:

Я пытаюсь написать в правильной форме следующую строфу:

<iq to='marlowe.shakespeare.lit' type='set'>
  <query xmlns='jabber:iq:register'>
    <username>juliet</username>
    <password>R0m30</password>
    <name>JJ</name>
  </query>
</iq>

Но я не умею правильно писать. Я застрял в том, как написать поля имени пользователя, пароля и имени в javascript.

Вот что я написал до сих пор:

connection.sendIQ($iq({to: "server", type: "set"}).c('query', {xmlns: "jabber:iq:register"}).c)

Любая помощь приветствуется!


person firewall    schedule 22.12.2013    source источник


Ответы (2)


Я знаю, что это старый пост, но я думаю, что плагин Strophe для внутриполосной регистрации именно то, что вы искали!

<head>
<!-- ... -->
<script type="text/javascript" src="strophe.min.js"></script>
<script type="text/javascript" src="strophe.register.js"></script>
<!-- ... -->
</head>

Javascript:

var callback = function (status) {
    if (status === Strophe.Status.REGISTER) {
        connection.register.fields.username = "juliet";
        connection.register.fields.password = "R0m30";
        connection.register.submit();
    } else if (status === Strophe.Status.REGISTERED) {
        console.log("registered!");
        connection.authenticate();
    } else if (status === Strophe.Status.CONNECTED) {
        console.log("logged in!");
    } else {
        // every other status a connection.connect would receive
    }
};
connection.register.connect("example.com", callback, wait, hold);
person B 7    schedule 23.08.2016

Используйте Strophe и функцию подключения, если вы собираетесь использовать javascript.

connection.connect(jid, пароль, cb);

Внутренняя регистрация предназначена для использования без JavaScript. Вы бы собрали тело и отправили строку на ваш сервер jabber. См. http://metajack.im/2008/10/03/getting-attached-to-strophe/ для примера.

person Mark S    schedule 26.12.2013
comment
Connection.connect можно использовать только после того, как вы зарегистрируете пользователя на jabber-сервере. Мой вопрос заключался в том, как зарегистрировать пользователя с помощью Strophe. Спасибо за ваш ответ. - person firewall; 27.12.2013
comment
Насколько я знаю, вы не можете зарегистрироваться в Strophe/Javascript. Пользователь должен быть уже зарегистрирован на jabber-сервере. Смотрите последнюю часть моего ответа. XEP 0077 может быть обработан вашим внутренним кодом, затем RID, SID и JID могут быть переданы в Strophe для присоединения. Или вы можете вручную добавить пользователей на свой сервер jabber, а затем использовать функцию подключения. - person Mark S; 27.12.2013