I want to build a chat, based on JavaScript (jQuery will be used for AJAX) and PHP.
I\'ve heard a good way of doing this is to use long-polling.
I do underst
You don't want to create an infinite loop, but you can set a timeout. Basically loop for X second waiting for some sort of data, and if that doesn't happen send a response to the client telling it that it needs to initiate a new request, which will have the same timeout period.
$source; // some data source - db, etc
$data = null; // our return data
$timeout = 30; // timeout in seconds
$now = time(); // start time
// loop for $timeout seconds from $now until we get $data
while((time() - $now) < $timeout) {
// fetch $data
$data = $source->getData();
// if we got $data, break the loop
if (!empty($data)) break;
// wait 1 sec to check for new $data
usleep(10000);
}
// if there is no $data, tell the client to re-request (arbitrary status message)
if (empty($data)) $data = array('status'=>'no-data');
// send $data response to client
echo json_encode($data);
implementing such kind of chat is not good idea in php, you can use CometChat, Nodjs and if you can not install scripts on your server than you can use Available APIs for Realtime Sending Data,
such as Pubnub, Pushemr, Beaconpush.