[[ IMPORTANT NOTE: ]] This API documentation is broken at the moment, arguments for constructors of JSJaCHttpPollingConnection and (which is completely undocumented so far) JSJaCHttpBindingConnection and their accompanying connect methods have changed. JSJaCConnection =============== This is a somewhat abstract base class. You can't instantiate objects from it but it provides functionality common to all specific backends like JSJaCHttpPollingConnection. constructor: JSJaCConnection(oArgs[JSON notation!]) PARAMS: httpbase - http base address of service to be used timerval - initial poll interval in msec oDbg - typeof Debugger (optional) boolean: connected() checks if connection is connected RETURNS: boolean - true if connected, false otherwise boolean: isPolling() whether this connection is using polling RETURNS: true if polling is used (thus indicating it makes sense to use setPollInterval) void: registerHandler(string: event, function: handler) register a handler for event. if event happens handler is called. PARAMS: event - known events so far: 'message','iq','presence', 'ondisconnect', 'onconnect', 'onerror' handler - the function to be called. for events 'message', 'iq' and 'presence' the handler gets passed an JSJaCPacket as argument for processing. 'onerror' an error node is supplied, e.g.: void: send(JSJaCPacket: aJSJaCPacket [, function: callback [, any: arg]]) appends aJSJaCPacket to send queue. registers callback if given PARAMS: aJSJaCPacket - packet to send callback - a callback to call when reply with same id comes in id is set automatically if none set arg - optional arg to call callback [callback is called with callback(aJSJaCPacket, arg)] int: setPollInterval(int: timeout_msec) change polling interval to timeout_msec PARAMS: timeout_msec RETURNS: actual value the polling interval has been set to. -1 on failure. JSJaCHttpPollingConnection ========================== Implements communication with an HTTP Polling Component. constructor: JSJaCHttpPollingConnection(Debugger:oDbg) see JSJaCConnection void: connect(oArgs) oArgs := string: domain, # jabber domain string: username, # jabber username string: resource, # resource string: pass, # password boolean: register, # whether to register a new account # (using in-band registration of available) # [optional] string: authtype, # one of 'sasl' (not implemented), # 'saslanon' and 'nonsasl' # [optional, default: nonasl] string: anonhost # hostname of sasl anonymous service # automagically sets authtype to saslanon # [optional] void: disconnect() disconnects from server JSJaCHttpBindingConnection ========================== Implements communication with an HTTP Binding Service (aka Connection Manager). constructor: JSJaCHttpBindingConnection(oArgs[JSON notation!]) see JSJaCConnection void: connect(oArgs[JSON notation]) oArgs := string: domain, # jabber domain string: username, # jabber username string: resource, # resource string: pass, # password boolean: register, # whether to register a new account # (using in-band registration of available) # [optional, default: false] string: host, # connect host [optional, default: domain] int: port, # port of connect host # [optional, default: 5222] boolean: secure, # whether to indicate that SSL should be # used to connect to remote host # [optional, default: false] int: wait # time in seconds the connection manager # is allowed to hold an idle request # [optional, default: 300] void: disconnect() disconnects from server JSJaCPacket =========== Abstract base class for jabber packets. string: pType() returns type of top level node (either 'message', 'iq' or 'presence') JSJaCPacket: setTo(string: to) JSJaCPacket: setFrom(string: from) JSJaCPacket: setID(string: id) JSJaCPacket: setType(string: type) JSJaCPacket: setXMLLang(string: xmllang) JSJaCPacket: setXMLNS(string: xmlns) setters for common attributes of top level nodes. PARAMS: value to set attribute to RETURNS: the packet itself again string: getTo() string: getFrom() string: getID() string: getType() string: getXMLLang() string: getXMLNS() getters for common attributes of top level nodes string: xml() returns string representation of DOM xml tree [IMPORTANT NOTE: Usage of getDoc().xml is DEPRECATED as it not support by browsers other than IE and Mozilla based ones] DOMDocument: getDoc() Returns internal DOMDocument. This is where you can do your own stuff like creating new childs and so on. Most notably you would use it like follows: var iq = new JSJaCIQ(); iq.setType('get'); iq.xml() => "" query = iq.setQuery('jabber:iq:private'); iq.xml() => "' query.appendChild(iq.getDoc().createElement('storage')).setAttribute('xmlns','storage:bookmarks'); iq.xml() => "' DOMElement: getNode() returns top level node JSJaCNode: clone() returns a (deep) copy of calling packet JSJaCIQ ======= An IQ packet constructor: JSJaCIQ() JSJaCIQ: setIQ(to,from,type,id) convenient method to set some attributes at once DOMElement: setQuery(string: xmlns) creates new query child element. inserts it at top level node and returns it PARAMS: xmlns - namespace attribute for query RETURNS: DOMElement that has been created DOMElement: getQuery() returns query element string: getQueryXMLNS() returns xmlns attribute of query element JSJaCPresence ============= A presence packet constructor: JSJaCPresence() JSJaCPresence: setShow(string: show) creates 'show' child element and sets its CDATA to show (should be one of 'away','xa','dnd' or 'chat') JSJaCPresence: setStatus(string: status) creates 'status' child element and sets its CDATA to status JSJaCPresence: setPriority(string: prio) creates 'priority' child element and sets its CDATA to prio JSJaCPresence: setPresence(string: show, string: status, string: prio) conveniant method to set some values at once string: getShow() string: getStatus() string: getPriority() return value of corresponding element JSJaCMessage ============ A message packet JSJaCMessage: setBody(string: body) creates 'body' element with value body JSJaCMessage: setSubject(string: subject) creates 'subject' element with value subject string: getBody() string: getSubject() return value of corresponding element