How do I...Create a connectionvar con = new JabberConnection( "/http-bind/", "soashable.com" );
con.beginSession(); Close a connectioncon.endSession(); Logincon.authenticateMd5( "username", "password", "resource" ); Registervar reg = new Packet.Registration();
reg.setNode( "myjid" );
reg.setPassword( "mypass" );
reg.setEmail( "somebody@somewhere.com" );
reg.setName( "My Name" );
con.send( reg ); Send an IMvar msg = new Packet.Message("somebody@somewhere.com", "hello");
con.send( msg );Change my presencevar pres = new Packet.Presence( "available", "dnd" ); Change my presence for only a specific buddyvar pres = new Packet.Presence( "available", "dnd" );
pres.setTo( "buddy@soashable.com" ); Capture others' presencecon.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 buddyvar 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 buddycon.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 requestscon.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 AIMTransportHelper.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 datavar ds = con.getDataStorage();
ds.set( "mycompany:greeting", "Hello", "greeting" ); Retrieve private datavar 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 MUCroom.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 MUCroom.part(); Getting a list of MUCsmucMan.getRoomList(function(mucMan, rooms) {
console.dir( rooms );
});
|