[JDEV] transports dev

Dave Smith dizzyd at dizzyd.com
Sun Jan 21 23:07:51 CST 2001


Hey,

On Sun, Jan 21, 2001 at 08:48:58PM -0500, dlb wrote:
> so can I take your advice to mean that a transport module is overkill in this
> situation ?

Well, it's not really overkill -- it's just the wrong...application of a "transport"
component. 

With the new Jabber architecture (that is, anything post 1.0) the server is composed
completely of "component". Each component within the server provides a specific, yet
independent piece of funcationality. These components are connected in a variety of
ways:
 -- via socket (base_connect, base_accept)
 -- via child coprocesses (base_exec; redirected stdio)
 -- via shared objects (base_load)

All the components are connected to a central "hub" which we call jabberd. JabberD 
provides the routing logic necessary to get a packet from one component to another.

In the typical IM appliation of Jabber, a server is composed of four primary 
components:
 -- Client socket manager ("Client Talker") : provides a way for clients to send
    packets into the jabberd hub using a standard TCP connection and a single
    document per session.
 
 -- Server socket manager ("Server Talker") : provides a way for servers to interact
    by exchanging packets over a TCP connection

 -- Session Manager (JSM) : keeps track of the state of individual Jabber sessions.
    It knows nothing of sockets; it simply tracks state on behalf of the Client Talker.

 -- XDB storage interface : provides a way to store XML nodes, keyed by namespace.


Each of these components connect (in one way or another) to jabberd and are registered
with distinct names in the hub. The hub sees to it that packets from one get to the other.

So, the point of all this rambling is that your Flash5 component would fall into the
"Client Talker" category. It would accept incoming connections, send auth requests into
the hub and be notified when JSM has accepted the auth and has setup a session for
that component. From that time forward, packets would simply be sent directly into
jabberd for delivery -- JSM would see to it that packets get to the other sessions or
servers.

Hope that explains a bit. We definately need docs on this stuff. Keep asking questions
and I'll try and explain.

D.





More information about the JDev mailing list