Ljudi, "rasiriste ga do Moravu"! :D
Ovako:
poseban hardver salje podatke u intervalima od oko 15-20 sec serveru.
Mora se koristiti UDP iz dva razloga: prvi je kolicina podataka koju utrosi tcp/ip prenoseci gomilu, u ovom slucaju, nepotrebnih kontrolnih bitova; drugi razlog je taj sto udp ne zahteva konekciju sto je poseban zahtev jer uredjaj ne treba da trosi vreme na konekciju pri svakom slanju (15-20 sec)
Prihvatanje bi izgledalo ovako:
Code:
error_reporting(E_ALL | E_STRICT);
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 2224);
$from = 'Sensor x';
$i=0;
while($i<10){
echo("Ceka podatke!!!");
socket_recvfrom($socket, $buf, 40, 0, $from, 2224);
// obraditi podatke
}
Kako proces ostaje "zaboden" na socket_recvfrom, to nece doci do nepotrbnog "trcanja" kroz petlju.
Pitanje jeste da li ce ovako mali interval prijema podataka mozda izazvati neke probleme server u vidu prevelikog zauzeca memorije ili cpu!?
Na lokalnom serveru, do toga nije dolazilo, ali videcu da li ce biti problema na hosterovom serveru.
U principu, mogao bih podesiti da se u odredjenom vremenskom intervalu proces sam killuje, a pre toga pokrene novi sa istom funkcijom.