What's new? | Help | Directory | Sign in
Google
                
Search
for
Updated Dec 30, 2007 by h.iverson
Labels: Featured
XMPP4JSUsage  

How do I...

Create a connection

var con = new JabberConnection( "/http-bind/", "soashable.com" );
con.beginSession();

Close a connection

con.endSession();

Login

con.authenticateMd5( "username", "password", "resource" );

Register

var reg = new Packet.Registration();
reg.setNode( "myjid" );
reg.setPassword( "mypass" );
reg.setEmail( "somebody@somewhere.com" );
reg.setName( "My Name" );

con.send( reg );

Send an IM

var msg = new Packet.Message("somebody@somewhere.com", "hello");
con.send( msg );

Change my presence

var pres = new Packet.Presence( "available", "dnd" );

Change my presence for only a specific buddy

var pres = new Packet.Presence( "available", "dnd" );
pres.setTo( "buddy@soashable.com" );

Capture others' presence

con.addPacketListener( function(presence) {
    var from = presence.getFrom();
    var type = presence.getType();
    var status = presence.getStatus();
    var awayMsg = presence.getShow();
    if( type == "available" ) {
      alert( from + " is " + status + "; show=" + awayMsg );
    } else {
      alert( from + " is offline." );
    }
}, new PacketTypeFilter( Packet.Presence ) );

Add a buddy

var roster = con.getRoster();
roster.createEntry( "mybuddy@soashable.com", "My Buddy", ["group a", "group b"] );

Remove a buddy

... there is no way right now. ouch...

Confirm/Deny a request to be added as a buddy

con.addPacketListener( function(presence) {
    if( presence.getType() == "subscribe" ) {
      var allowed = confirm( "Do you want to let " + presence.getTo() + " subscribe to your presence?");
      var outPres = new Packet.Presence( "subscribed" );
      outPres.setTo( presence.getFrom() );
      con.send( outPres );
    }
}, new PacketTypeFilter( Packet.Presence ) );

Be notified of message events (composing)

con.addPacketListener(
    function(msg) {
      // load extensions that are present in the packet using our ExtensionProvider
      msg.loadExtensions(extensionProvider);

      var msgEvent = msg.getExtension( MessageEventExtension.XMLNS );
      alert( "Message Event: " + msg.getTo() + " - " + msgEvent .getEvent() );

    }, 
    // capture only Message packets with MessageEventExtension
    new AndFilter(
      new PacketTypeFilter( Packet.Message ), 
      new ExtensionFilter( MessageEventExtension.XMLNS )
    ) 
);

Respond to version requests

con.addPacketListener( function(iq) {
    var versionIq = new Packet.IQ( iq.getFrom(), "set", "jabber:iq:version" );
    versionIq.getQuery().textContent = "Rockin' Jabber Client";
    con.send( versionIq );
}, new IQQueryNSFilter ( "jabber:iq:version" ) );

Sign in to AIM

TransportHelper.registerForAim( "aim.im.soashable.com", "screen name", "password" );

-or-

var reg = new Packet.Registration();
reg.setTo( "aim.soashable.com" );
reg.setNode( "aimscreenname" );
reg.setPassword( "mypass" );

con.send( reg );

Store private data

var ds = con.getDataStorage();
ds.set( "mycompany:greeting", "Hello", "greeting" );

Retrieve private data

var ds = con.getDataStorage();
ds.get( "mycompany:greeting", function(responseNodes ) {
    var greeting = responseNodes[0].textContent;
    alert( greeting );
}, "greeting" );

Suspend a connection

... can't do it yet ...

Resume a connection

... can't do it yet ...

Join a Multi-User Chat (MUC)

var extProvider = ...;
var mucMan = MucManager.getInstanceFor( con, "conference.soashable.com", extProvider );

// get info about a room and create a state to act with
var room = mucMan.getRoom( "soashable" ).createState();

// join with the nick "harlan2"
room.join( "harlan2" );

Get the status of a Join

// use extjs's Ext.util.Observable for registering events
room.on({
  join: function(room, participant, packet) { },
  error: function(room, participant, packet) {
    console.dirxml( packet.getExtension( ErrorExtension.XMLNS ).getNode() );
  },
});

room.join( "harlan2" );

Send Message to a MUC

room.sendText( "Hello, MUC!" );

List Occupants

// getting participants happens asynchronously, so it
// does NOT simply return a list.
room.getParticipants(function(room, participants) {
    console.dir( participants );
});

Leave a MUC

room.part();

Getting a list of MUCs

mucMan.getRoomList(function(mucMan, rooms) {
    console.dir( rooms );
});

Sign in to add a comment