3

nodejs xmpp サーバーを実装しました。クライアントとして、私はピジンを持っています。pidgin からサーバーにメッセージを送信できません。なんで?接続でき、認証が機能します。

これは私のサーバーコードです:

'use strict'

var xmpp = require('../index')
  , server = null
  , Client = require('node-xmpp-client')
var startServer = function(done) {
    // Sets up the server.
    server = new xmpp.C2S.TCPServer({
        port: 5222,
        domain: 'localhost'
    })

    // On connection event. When a client connects.
    server.on('connection', function(client) {
        // That's the way you add mods to a given server.

        // Allows the developer to register the jid against anything they want
        client.on('register', function(opts, cb) {
            console.log('REGISTER')
            cb({code: 'foo', type: 'bar'})
        })

        // Allows the developer to authenticate users against anything they want.
        client.on('authenticate', function(opts, cb) {
            console.log('server:', opts.username, opts.password, 'AUTHENTICATING')
            if (opts.password === 'secret') {
                console.log('server:', opts.username, 'AUTH OK')
                cb(null, opts)
            }
            else {
                console.log('server:', opts.username, 'AUTH FAIL')
                cb(false)
            }
        })

        client.on('online', function() {
            console.log('server:', client.jid.local, 'ONLINE')
            client.send(new xmpp.Element('iq', { type: 'chat', 'xml:lang': 'ko' }).c('body').t('Welcome to server!'))
        })

        // Stanza handling
        client.on('stanza', function(stanza) {
            console.log('server:', client.jid.local, 'stanza', stanza.toString())

            //var from = stanza.attrs.from
            //stanza.attrs.from = stanza.attrs.to
            //stanza.attrs.to = from
            console.log(stanza.toString());
            client.send(stanza.toString())
            //console.log('Stanza sent is :'+stanza);
        })


        // On Disconnect event. When a client disconnects
        client.on('disconnect', function() {
            console.log('server:', client.jid.local, 'DISCONNECT')
        })

    })

server.on('listening', done)
}

startServer(function() {

   })
4

0 に答える 0