Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: Real-Time Web-Chat with Perl

by dws (Chancellor)
on Mar 16, 2002 at 20:21 UTC ( #152227=note: print w/replies, xml ) Need Help??

in reply to Real-Time Web-Chat with Perl

I've seen this "streaming" in several Java-Chats with HTML-Front-End (no applet!) and I would be surprised if this is not possible with Perl.

Indeed it is possible. There are two principal schemes for active chat, both of which require JavaScript on the client side. On scheme relies on doing a periodic refresh from a frame to a server CGI that responds with the most recent messages. Posting a new message happens from a different frame.

The second scheme relies on streaming a sequence of JavaScript commands into a hidden frame. The commands will append to the message stream in a visible frame. Posting a new message happens from a different frame.

To make either of these schemes work, the server side has to do a certain about a client "capability detection", so that the server can know what flavor of frames and JavaScript to use. If you go either route, you'll end up with templates that have conditional chunks of Netscape or IE-flavored JavaScript.

merlyn has a column that shows how to implement the former scheme. For details on the latter scheme, see this paper, which talks about the scheme from a Java-centric viewpoint.

Replies are listed 'Best First'.
Re: Re: Real-Time Web-Chat with Perl
by mt2k (Hermit) on May 04, 2002 at 01:49 UTC
    Actually, I had a chat script that worked using the whole $| = 1; thing.

    The problem I ran into and the reason I tossed out the script was that if no one says anything for a long enough period of time, browsers will return an error saying that the document cannot be loaded. I later found out a way to fix this... All I needed to do was make sure I printed out an HTML comment every 30 seconds or so. lol, wish I hadn't tossed it now...

    The way I accomplished the client-side was indeed via JavaScript. I just did a setInterval() for 1000ms (1 second) that executed a scrollBy() statement to scroll the chat window down to the bottom. :)

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://152227]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (2)
As of 2022-11-28 01:51 GMT
Find Nodes?
    Voting Booth?