I&#39;m trying to create an XMPP server using twisted.words and am having difficulty finding the correct way to make use of the classes provided. I was hoping someone might have an example or short explanation of which classes would be used to create a very basic server (using the <a href="http://twistedmatrix.com/documents/8.2.0/api/twisted.words.protocols.jabber.xmlstream.html">latest classes</a> from 8.2.0).<br>

<br>So far I have a t.w.p.j.xmlstream.XmlStreamServerFactory object creating t.w.x.xmlstream.XmlStream protocol instances. The t.w.p.j.xmlstream.XmlStream objects are being given a t.w.p.j.xmlstream.ListenAuthenticator object. The factory is being created and given to a t.a.internet.TCPServer service which has a t.a.service.Application as its parent service. Everything runs fine and I can see data coming in, but I wasn&#39;t sure what the correct functions to override and deal with the data were, or where to attach event listeners using addBootstrap().<br>

<br>Also, how do xmlstream.StreamManager, xmlstream.XMPPHandler, and xmlstream.XMPPHandlerCollection fit into this. Are they appropriate to use for a server?<br><br>Is there still work being done on the goals listed at <a href="http://twistedmatrix.com/trac/wiki/XMPPServerArchitecture">http://twistedmatrix.com/trac/wiki/XMPPServerArchitecture</a>?<br>

<br>Thanks! Really enjoying Twisted so far.<br>