Search in sources :

Example 1 with Event

use of com.nabalive.common.server.Event in project NabAlive by jcheype.

the class IqHandler method onMessage.

public void onMessage(ChannelHandlerContext ctx, MessageEvent e, Status status, String message, Document document) {
    String id = document.getDocumentElement().getAttribute("id");
    String from = document.getDocumentElement().getAttribute("from");
    Jid jid = new Jid(from);
    String to = document.getDocumentElement().getAttribute("to");
    final Matcher matcher = statusChangePattern.matcher(message);
    if (matcher.find()) {
        String resource = matcher.group(1);
        logger.info("change status: " + resource);
        String reply = "<iq id='" + id + "' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>" + "<jid>" + jid.getUser() + "@" + jid.getServer() + "/" + resource + "</jid></bind></iq>";
        write(e.getChannel(), reply);
        jid.setResource(resource);
        status.setJid(jid);
        status.onEvent(new Event(message, Event.Type.BIND_RESOURCE));
    } else if (message.contains("<session xmlns='urn:ietf:params:xml:ns:xmpp-session'/>")) {
        String reply = "<iq id='" + id + "' type='result' from='" + to + "'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>";
        write(e.getChannel(), reply);
    } else if (message.contains("<query xmlns=\"violet:iq:sources\"><packet xmlns=\"violet:packet\" format=\"1.0\"/></query>")) {
        String reply = "<iq from='net.violet.platform@xmpp.nabaztag.com/sources'" + "to='" + from + "' id='" + id + "' type='result'>" + "<query xmlns='violet:iq:sources'>" + "<packet xmlns='violet:packet' format='1.0' ttl='604800'>fwQAAAx////+BAAFAA7/CAALAAABAP8=</packet>" + "</query>" + "</iq>";
        write(e.getChannel(), reply);
    } else if (message.contains("<unbind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>")) {
        String reply = "<iq id='" + id + "' type='result'/>";
        write(e.getChannel(), reply);
        status.onEvent(new Event(message, Event.Type.UNBIND_RESOURCE));
    }
}
Also used : Jid(com.nabalive.server.jabber.util.Jid) Matcher(java.util.regex.Matcher) MessageEvent(org.jboss.netty.channel.MessageEvent) Event(com.nabalive.common.server.Event)

Example 2 with Event

use of com.nabalive.common.server.Event in project NabAlive by jcheype.

the class MessageHandler method onMessage.

@Override
protected void onMessage(ChannelHandlerContext ctx, MessageEvent e, Status status, String message, Document document) {
    String from = document.getDocumentElement().getAttribute("from");
    if (message.contains("<button xmlns=\"violet:nabaztag:button\">"))
        status.onEvent(new Event(message, Event.Type.BUTTON));
    else if (message.contains("<ears xmlns=\"violet:nabaztag:ears\">"))
        status.onEvent(new Event(message, Event.Type.EARS));
    else
        status.onEvent(new Event(message, Event.Type.UNKNOWN_MESSAGE));
}
Also used : MessageEvent(org.jboss.netty.channel.MessageEvent) Event(com.nabalive.common.server.Event)

Example 3 with Event

use of com.nabalive.common.server.Event in project NabAlive by jcheype.

the class PresenceHandler method onMessage.

public void onMessage(ChannelHandlerContext ctx, MessageEvent e, Status status, String message, Document document) {
    String id = document.getDocumentElement().getAttribute("id");
    String from = document.getDocumentElement().getAttribute("from");
    String reply = "<presence from='" + from + "' to='" + from + "' id='" + id + "'/>";
    write(e.getChannel(), reply);
    Matcher matcher = pattern.matcher(from);
    if (matcher.find()) {
        String presence = matcher.group(1);
        status.setPresence(presence);
    }
    status.onEvent(new Event(message, Event.Type.PRESENCE));
}
Also used : Matcher(java.util.regex.Matcher) MessageEvent(org.jboss.netty.channel.MessageEvent) Event(com.nabalive.common.server.Event)

Aggregations

Event (com.nabalive.common.server.Event)3 MessageEvent (org.jboss.netty.channel.MessageEvent)3 Matcher (java.util.regex.Matcher)2 Jid (com.nabalive.server.jabber.util.Jid)1