Mike Shoyher <[EMAIL PROTECTED]> wrote on 3-1-2003 17:20:48: > >Hello Richard, > >All the clients I found so far aren't pure web, they use either flash >or java to connect to the server. I had an intention to make a >jabber-based web chat, but things look quite complicated to me. > >The major problem is our beloved statelessness of the HTTP. That means >the web server must keep all sessions to the jabber server. I don't >see a good way to do it using mod_perl. > >Probably it would make sense to invent special stateless transport for >the jabber server. The jabber server keeps sessions anyway so we could >unburden the client and provide a way for the client to send what it >wants and fetch the whole backlog of waiting messages.
We've done (on a commercial basis) a Jabber Web Client that only uses pure HTML, no Java, Flash whatever. In fact is was cHTML (wich does not have any of those things). This was done with Apache/PHP and a Java based Jabber Component. For each user when a page is requested through PHP the same session-id is passed along. The PHP script then uses a socket or pipe to connect to the java component. It can use a very simple protocol to do basic things like send log in, send a message, change presence, retrieve the contactlist etc. When the user wants to logs into Jabber the Java/Jabber component uses <route/> tags to log into the jabber server for the client. (sort of like JADC2S). All hurther things (messages etc) can be done using these. We use a component rather then creating a socket connection for each new user, because this greatly enhances stability and scalability. overal this solution preserves the "statelessness" of PHP and Apache, and scales pretty well. All jabber specifics are done in Java rather than PHP, in fact very little is done here, just layout etc. I suppose you could use Perl instead of Java, if the quality of the current Perl libraries are good enough. It's also possible to host the Apache/PHP part, the Java/Jabber component and the Jabber server itself on different servers. With a little extra effort it's even possible to cluster these things or set them up redundantly (except for jabberd itself, though jabber.com can take care of that), all persistant data etc. is stored in jabber, you don't need MySQL or anything like it. Note however that the current way of creating jabber session useing <route/> tags to my understanding does not work anymore in jabber2, but something simulair will be / is in place (porting it shouldn't be that much of a problem). -- Tijl Houtbeckers Java/J2ME/GPRS Software Engineer @ Splendo The Netherlands _______________________________________________ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
