<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Comet demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery.min.js"></script>
<script>
var timestamp = 0;
var url = './test.php';
var error = false;
function connect(){
$.ajax({
data : {'timestamp' : timestamp},
url : url,
type : 'get',
timeout : 0,
success : function(response){
var data = eval('('+response+')');
error = false;
timestamp = data.timestamp;
$("#content").append('<div>' + data.msg +'</div>');
},
error : function(){
error = true;
setTimeout(function(){ connect();}, 5000);
},
complete : function(){
if (error)
// if a connection problem occurs, try to reconnect each 5 seconds
setTimeout(function(){connect();}, 5000);
else
connect();
}
})
}
function send(msg){
$.ajax({
data : {'msg' : msg},
type : 'get',
url : url
})
}
function getLocalTime(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
}
$(document).ready(function(){
connect();
})
</script>
</head>
<body>
<div id="content">
</div>
<p>
<form action="" method="get" onsubmit="send($('#word').val());$('#word').val('');return false;">
<input type="text" name="word" id="word" value="" />
<input type="submit" name="submit" value="Send" />
</form>
</p>
</body>
</html>
test.php
<?php
$filename = dirname(__FILE__).'/data.txt';
// store new message in the file
$msg = isset($_GET['msg']) ? $_GET['msg'] : '';
if ($msg != '')
{
file_put_contents($filename,$msg);
die();
}
// infinite loop until the data file is not modified
$lastmodif = isset($_GET['timestamp']) ? $_GET['timestamp'] : 0;
$currentmodif = filemtime($filename);
while ($currentmodif <= $lastmodif) // check if the data file has been modified
{
usleep(10000); // sleep 10ms to unload the CPU
clearstatcache();
$currentmodif = filemtime($filename);
}
// return a json array
$response = array();
$response['msg'] = file_get_contents($filename);
$response['timestamp'] = $currentmodif;
echo json_encode($response);
flush();
?>
//http://tech.techweb.com.cn/thread-439108-1-1.html