Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/11/2011, 13:52
Avatar de patkoala
patkoala
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 19
De acuerdo [APORTE]:Chat básico con ajax(long polling)

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