adaptor-xmpp.js 1.08 KB
var xmpp = require('simple-xmpp');

var username;
var password;

var callbacks;


function onLoginSuccessful(data) {
    logger.info('XMPP login successful', {data: data});
    if (callbacks.onLoginSuccessful) {
        callbacks.onLoginSuccessful();
    }
}

function onPM(sender, msg) {
    logger.verbose('Got a message', {from: sender, msg: msg})
    if (callbacks.onPM) {
        callbacks.onPM(sender, msg);
    }
}

function onSubscribe(sender) {
    xmpp.acceptSubscription(sender);
}

function init(_username, _password, _logger, _callbacks) {
    username = _username;
    password = _password;
    logger = _logger;
    callbacks = _callbacks;

    xmpp.on('online', onLoginSuccessful);
    xmpp.on('chat', onPM);
    xmpp.on('error', onError);
    xmpp.on('subscribe', onSubscribe)

    xmpp.connect({
        jid: username,
        password: password
    });
}

function sendMessage(destination, msg) {
    logger.verbose('Sending message', {from: username, destination: destination, msg: msg});
    xmpp.send(destination, msg);
}

exports.init = init;
exports.sendMessage = sendMessage;