2016-07-27 11 views
1

node-xmpp를 통해 node.js에서 ejabberd로 새 사용자를 등록하려고 시도하고 있지만 인증 및 등록 이벤트가 연결되지 않고 있습니다.인증 및 등록 중 문제가 발생했습니다.

var clientXMPP = require('node-xmpp-client'); 
var serverXMPP = require('node-xmpp-server'); 
var c2s = new serverXMPP.C2SServer({ 
     jid: '[email protected]', 
     password: 'test' 
    }); 

    c2s.on("connect", function(client) { 
     console.log(client) 
     c2s.on('register', function(opts, cb) { 
      console.log('REGISTER') 
      cb(false) 
     }) 
     c2s.on("authenticate", function(opts, cb) { 
      console.log("AUTH" + opts.jid + " -> " +opts.password); 
      cb(false); 
     }); 
     c2s.on('disconnect', function() { 
      console.log('DISCONNECT') 
     }) 
    }); 

어떻게 새 사용자를 등록하고 node-xmpp에서 인증 할 수 있습니까?

+0

입니까? 어떤 문제가 있습니까? 코드에서 보낸 오류가 있습니까? –

+0

@ MickaëlRémond, connect를 호출하지 않습니다. ejabberd에서도 등록이 가능합니다. node-xmpp를 사용하여 ejabberd에 새 사용자를 등록하려고합니다. 나는 코드에서 뭔가 잘못되었다고 생각한다. –

답변

0

nodejs에서 ejabberd 서버로 새 사용자를 만들면 ejabberd에서 대역 내 등록이 활성화되어 있는지 확인하십시오.

node-xmpp-server는 필요하지 않으며 node-xmpp-client 만 가능합니다. 클라이언트 라이브러리는 ejabberd admin 사용자와 연결하는 데 도움이됩니다. 여기

당신이 등록 ejabberd에 활성화 마십시오 예를 들어

const Client = require('node-xmpp-client'); 

let admin = new Client({ 
    jid: '{adminJID}', 
    password: '{adminPassword}' 
}); 

// check for errors to connect with socket 
admin.connection.socket.on('error', function (error) { 
    // handle error 
}); 

admin.on('online', function (data) { 

    // Register stanza 
    let stanza = new Client.Stanza('iq', {type: 'set', id: 'reg1', to: '192.168.1.1'}) 
     .c('query', {xmlns: 'jabber:iq:register'}) 
     .c('username').t('{username}').up() // Give a new username 
     .c('password').t('{password}') // Give a new user's password 

    admin.send(stanza); // send a stanza 
}); 

// response stanzas 
admin.on('stanza', function (stanza) { 
    // check for error/success 
});