Chat
From PlainOldWebserver
This an AJAX-based chat server that can handle several clients. It takes advantage of 'pow_server' as a persistent object. Any instance variable (in this case 'pow_server.text_buffer') can be used to store session data except reserved words (GET, POST, etc.). The helper function, pow_run_ajax does some of the work. The result is a fairly slim chat client.
An example Chat program is running right now. (If it is down, it means I closed Firefox by accident.)
chat.sjs:
<?sjs
// NOTE: THIS PAGE must be named chat.sjs to work properly
pow_server.put_text = function() {
if(pow_server.GET['text']) {
var chat_text =
decodeURIComponent(pow_server.GET['id']+": "+
pow_server.GET['text']);
if(!pow_server.text_buffer) {
pow_server.text_buffer = new Array();
} else if(pow_server.text_buffer.length > 10) {
pow_server.text_buffer.shift()
}
pow_server.text_buffer.push(chat_text);
}
var changetext = new Array('changeme',
pow_server.text_buffer.join("<br>"));
return changetext;
}
pow_run_ajax();
?>
<script>
var server_location = '/chat.sjs?AJAX=true';
start_loop();
function start_loop() {
pow_ajax_load(server_location);
setTimeout("start_loop()" ,2000);
}
function handle_submit() {
var url = server_location;
var form = document.getElementById("my_text");
url += "&text="+form.elements[1].value+"&id="+
form.elements[0].value;
form.elements[1].value = "";
pow_ajax_load(url);
}
</script>
<form id='my_text' onsubmit=
"handle_submit();
return false;" action="#Oops" method='GET' >
Name: <input name="id" value="YOUR ID" type="text" />
<div id="changeme">Text to change</div>
Message: <input name="chat_text" type="text" />
<input type='submit' value='Send' />
</form>
</body>
</html>
