> What is the good way to develop a jabber module ? External > (with JECL for example) or internal with the 'load' method ? > And why ? > > thanks
It depends on what your goal is. An external connect component (a separate daemon that connects to the Jabber server as a component and not a regular client) is a nice way of making sure that even if your component crashes the Jabber daemon will live on and serve it's clients. So if you are building a complex system with many components that do many different things it's good. On the other hand the communication between the Jabber daemon and the component is through one socket only. This means that if one client requests a massive data chunk (or very long list) all other messages to and from that component will be queued, not good if you want multiple simultaneous clients to your component. I made this mistake when creating a Maildir component from which many clients could fetch email simultaneously. I hade to convert into a module since when more than 30 clients tried to fetch email containing large attachments, while as Jabber module I could start a thread per request. Also, if you create a module you get Jabber API's very nice memory pooling. So, the crash problem? You can have several Jabber daemons, I have one instance of Jabber only for my maildir module. If it should need to communicate with my Jabber daemon that has the IM modules I can route packets. I do this so that if my Jabber Maildir instance crashes, my clients will still have IM functions up and running. Those were my two cents! :-) /P _______________________________________________ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
