2014-01-16 3 views
0

У меня есть сервер Ejabberd, размещенный в удаленном месте. И я пытаюсь зарегистрировать новые учетные записи, используя плагин регистрации Strophe.js. Я не мог найти, почему это не работает. Ниже приведен код, который я написалПлагин регистрации Strophe.js не работает

var connection = new Strophe.Connection("http://ip-address:5222/http-bind"); 
    var callback = function (status) { 
     alert(Strophe.Status.REGISTER); // Returning me 10 
     if (status === Strophe.Status.REGISTER) { 
      alert("Entered"); 
      connection.register.fields.username = "hello"; 
      connection.register.fields.password = "hello"; 
      connection.register.submit(); 
     } else if (status === Strophe.Status.REGISTERED) { 
      alert("registered!"); 
      connection.authenticate(); 
     } else if (status === Strophe.Status.CONNECTED) { 
      alert("logged in!"); 
     } else { 
      // Sometimes execution entering into this block. 
      document.body.innerHTML = (JSON.stringify(status)); 
     } 
    }; 
    connection.register.connect("localhost", callback); 

Любого дополнительный код, который будет добавлен к этому или любому исправлению я должен сделать сделать эту работу. Пожалуйста помоги мне с этим. Документация Strophe.js ужасна.

+0

Я ничего не знаю о Strophe.js, но можно ли видеть, что строфы XMPP отправляются и принимаются? Увидев их, возможно, сразу будет выявлена ​​проблема. – legoscia

+0

+1 - включить ведение журнала –

+0

трюк заключается в использовании как RAW INPUT AND RAW OUTPUT + CONNECTION STATUS, так и определения того, что действительно происходит с сервером. см. этот код: http://faraxmobile.com/r/afrika/hula3/js/models/connection/ConnectionModel.js Я должен предупредить вас, что я использую backbone.js и JOOP. –

ответ

2

В strophe.register.js перейти к строке № 215 и внести изменения в соответствии с нижеприведенным кодом.

/*if (register.length === 0) { 
      that._changeConnectStatus(Strophe.Status.REGIFAIL, null); 
      return; 
     } else */ 
this.enabled = true; 

Попробуйте более одного.

2
var connection = new Strophe.Connection("http://ip-address:5222/http-bind/"); 

Трейлинг Слэш необходим в конце.

Смежные вопросы