Para los que no sepan que es long polling:
Long polling:
http://es.wikipedia.org/wiki/Tecnolo...h#Long_polling
Polling:
http://es.wikipedia.org/wiki/Polling
El chat constará de 4 archivos:
index.html
Código HTML:
<html><head><script type="text/javascript">
nombre = prompt("Introduce tu nombre");
function xhr(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
} else if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function mostrar(){
var peticion = xhr();
peticion.onreadystatechange = function () {
if(peticion.readyState == 4){
document.getElementById('cont').innerHTML += "<br/>" + peticion.responseText;
setTimeout("mostrar()",1);
}
}
peticion.open("POST","index.php",true);
peticion.send(null);
}
function crearquery(){
var texto = document.getElementsByTagName('textarea')[0].value;
var salida = "value=" + encodeURIComponent(texto) + "&nom=" + encodeURIComponent(nombre);
return salida;
}
function cambia(){
var peticion = xhr();
peticion.open("POST","introducir.php",true);
peticion.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var query = crearquery();
peticion.send(query);
}
window.onload = mostrar;
</script>
</head><body><textarea></textarea><button onclick="cambia();">Enviar</button><div id="cont"></div></body></html>
index.php
Código PHP:
<?php
set_time_limit(0);
$fpa = fopen("content.txt","r");
$fpa = fgets($fpa);
while(1){
$fp = fopen("content.txt","r");
$fp = fgets($fp);
if($fp != $fpa){
echo $fp;
break;
}
sleep(1);
}
?>
introducir.php
Código PHP:
<?php
$fp = fopen("content.txt","w");
$valor = $_POST['value'];
$nombre = $_POST['nom'];
$valor = "<b>".$nombre."</b> : ".$valor;
fwrite($fp,$valor);
?>
Y por último, un archivo llamado content.txt que estará vacio.
Próximamente intentaré explicar su funcionamiento, tengo un poco de prisas