[Xmpp4js-commit] SF.net SVN: xmpp4js: [710] trunk/src/site
Status: Beta
Brought to you by:
h-iverson
From: <h-i...@us...> - 2008-06-14 19:03:10
|
Revision: 710 http://xmpp4js.svn.sourceforge.net/xmpp4js/?rev=710&view=rev Author: h-iverson Date: 2008-06-14 12:03:15 -0700 (Sat, 14 Jun 2008) Log Message: ----------- added code samples Modified Paths: -------------- trunk/src/site/site.xml Added Paths: ----------- trunk/src/site/xdoc/ trunk/src/site/xdoc/code-samples.xml Modified: trunk/src/site/site.xml =================================================================== --- trunk/src/site/site.xml 2008-06-12 05:42:12 UTC (rev 709) +++ trunk/src/site/site.xml 2008-06-14 19:03:15 UTC (rev 710) @@ -47,7 +47,7 @@ <item name="Download" href="https://sourceforge.net/project/showfiles.php?group_id=209465"/> </menu> <menu name="Developer Docs"> - + <item name="Code Samples" href="code-samples.html"/> <item name="BOSH Environment" href="bosh-environment.html"/> <item name="The HACKING File" href="hacking.html"/> <item name="XEP-0124 (BOSH)" href="http://www.xmpp.org/extensions/xep-0124.html"/> Added: trunk/src/site/xdoc/code-samples.xml =================================================================== --- trunk/src/site/xdoc/code-samples.xml (rev 0) +++ trunk/src/site/xdoc/code-samples.xml 2008-06-14 19:03:15 UTC (rev 710) @@ -0,0 +1,256 @@ +<document> + <properties> + <author email="h.i...@gm...">Harlan Iverson</author> + <title>Code Samples</title> + </properties> + + <body> + <!-- The body of the document contains a number of sections --> + <section name="Core"> + + +<subsection name="Create a connection"> +<pre name="code" class="javascript"><![CDATA[ +var con = new JabberConnection( "/http-bind/", "soashable.com" ); +con.beginSession(); +]]></pre> +</subsection> + +<subsection name="Close a connection"> +<pre name="code" class="javascript"><![CDATA[ +con.endSession(); +]]></pre> +</subsection> + +<subsection name="Login"> +<pre name="code" class="javascript"><![CDATA[ +con.authenticateMd5( "username", "password", "resource" ); +]]></pre> +</subsection> + +<subsection name="Register"> +<pre name="code" class="javascript"><![CDATA[ +var reg = new Packet.Registration(); +reg.setNode( "myjid" ); +reg.setPassword( "mypass" ); +reg.setEmail( "som...@so..." ); +reg.setName( "My Name" ); + +con.send( reg ); +]]></pre> +</subsection> + +<subsection name="Send an IM"> +<pre name="code" class="javascript"><![CDATA[ +var msg = new Packet.Message("som...@so...", "hello"); +con.send( msg ); +]]></pre> +</subsection> + +<subsection name="Suspend a connection"> +<p>... can't do it yet ...</p> +</subsection> + +<subsection name="Resume a connection"> +<p>... can't do it yet ...</p> +</subsection> + + + + </section> + <section name="Privacy, Presence"> + + +<subsection name="Change my presence"> +<pre name="code" class="javascript"><![CDATA[ +var pres = new Packet.Presence( "available", "dnd" ); +]]></pre> +</subsection> + +<subsection name="Change my presence for only a specific buddy"> +<pre name="code" class="javascript"><![CDATA[ +var pres = new Packet.Presence( "available", "dnd" ); +pres.setTo( "bu...@so..." ); +]]></pre> +</subsection> + +<subsection name="Capture others' presence"> +<pre name="code" class="javascript"><![CDATA[ +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 ) ); +]]></pre> +</subsection> + +<subsection name="Add a buddy"> +<pre name="code" class="javascript"><![CDATA[ +var roster = con.getRoster(); +roster.createEntry( "my...@so...", "My Buddy", ["group a", "group b"] ); +]]></pre> +</subsection> + +<subsection name="Remove a buddy"> +<p>... there is no way right now. ouch...</p> +</subsection> + +<subsection name="Confirm/Deny a request to be added as a buddy"> +<pre name="code" class="javascript"><![CDATA[ +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 ) ); +]]></pre> +</subsection> + + </section> + <section name="Events, Listeners"> + +<subsection name="Be notified of message events (composing) "> +<pre name="code" class="javascript"><![CDATA[ +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 ) + ) +); +]]></pre> +</subsection> + +<subsection name="Respond to version requests"> +<pre name="code" class="javascript"><![CDATA[ +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" ) ); +]]></pre> +</subsection> + + + </section> + <section name="Extensions"> + + +<subsection name="Sign in to AIM"> +<pre name="code" class="javascript"><![CDATA[ +TransportHelper.registerForAim( "aim.im.soashable.com", "screen name", "password" ); +]]></pre> + +<p>-or-</p> + +<pre name="code" class="javascript"><![CDATA[ +var reg = new Packet.Registration(); +reg.setTo( "aim.soashable.com" ); +reg.setNode( "aimscreenname" ); +reg.setPassword( "mypass" ); + +con.send( reg ); +]]></pre> + +</subsection> + +<subsection name="Store private data"> +<pre name="code" class="javascript"><![CDATA[ +var ds = con.getDataStorage(); +ds.set( "mycompany:greeting", "Hello", "greeting" ); +]]></pre> +</subsection> + +<subsection name="Retrieve private data"> +<pre name="code" class="javascript"><![CDATA[ +var ds = con.getDataStorage(); +ds.get( "mycompany:greeting", function(responseNodes ) { + var greeting = responseNodes[0].textContent; + alert( greeting ); +}, "greeting" ); +]]></pre> +</subsection> + + + </section> + <section name="Conference"> + +<subsection name="Join a Multi-User Chat (MUC) "> +<pre name="code" class="javascript"><![CDATA[ +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" ); +]]></pre> +</subsection> + +<subsection name="Get the status of a Join "> +<pre name="code" class="javascript"><![CDATA[ +// 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" ); +]]></pre> +</subsection> + +<subsection name="Send Message to a MUC "> +<pre name="code" class="javascript"><![CDATA[ +room.sendText( "Hello, MUC!" ); +]]></pre> +</subsection> + +<subsection name="List Occupants "> +<pre name="code" class="javascript"><![CDATA[ +// getting participants happens asynchronously, so it +// does NOT simply return a list. +room.getParticipants(function(room, participants) { + console.dir( participants ); +}); +]]></pre> +</subsection> + +<subsection name="Leave a MUC "> +<pre name="code" class="javascript"><![CDATA[ +room.part(); +]]></pre> +</subsection> + + +<subsection name="Getting a list of MUCs "> +<pre name="code" class="javascript"><![CDATA[ +mucMan.getRoomList(function(mucMan, rooms) { + console.dir( rooms ); +}); +]]></pre> +</subsection> + + + </section> + + </body> +</document> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |