1. taka2ru
  2. cl-xmpp-ext

Overview

HTTPS SSH
.. -*- restructuredtext -*-

===========
CL-XMPP-EXT
===========

I made this library for implementing XMPP server component for myself.

This extension supports:

* IQ stanza handling
* Service Discovery (XEP-0030)
* External Server Component (XEP-0114)
* and more feature if I need....

USAGE
=====

Connect Server as External Component
------------------------------------

First, configure server for accepting External Component.
For example in ejabberd ::

  {listen, [{5550, ejabberd_service,
                   [{ip, {127, 0, 0, 1}}, {access, all},
                    {host, "myext.mydomain.tld",
		     [{password, "somepassword"}]}]}]} 

Restart your ejabberd, start Common Lisp environment,
and load cl-xmpp-ext via ASDF.

::

  (let ((conn (xmpp:connect-component :hostname "localhost" :port 5550
                                      :server-jid "myext.mydomain.tld")))
    (xmpp:auth conn nil "somepassword" nil) ; handshake
    ...)

To handle messages, defmethod xmpp:handle like as cl-xmpp.
Several event classes are added:

* xmpp:iq, xmpp:iq-get, xmpp:iq-set, xmpp:iq-result, xmpp:iq-errpr
* xmpp:discovery-request-items, xmpp:discovery-request-info