Есть консольное приложение Yii2.
ActionIndexpublic function actionIndex()
{
$ip = 'tcp://192.168.5.162';
$port = 10001;
$storage = 'Автоприем';
$this->fp = $this->init_rfid($ip,$port, $storage);
while($this->fp <> 0){
$this->read_rfid($storage);
usleep(1500000);
}
}
В методе init_rfid отправляется запрос на устройство, инициализация и блокирование канала для общения с ним.
Метод init_rfid$fp = @fsockopen($ip,$port,$errno, $errstr, 10);
if (!$fp) {
print_r("ERROR: $errno - $errstr\n");
$fp = 0;
} else{
...
}
Каждые 1,5 секунды я считываю с него состояние.
Но через некоторое время(сутки, неделю) со стороны устройства соединение сбрасывается и команда fwrite в методе read_rfid улетает с ошибкой
Error: fwrite(): send of 180 bytes failed with errno=10054
Каждые 1,5 секунды не хочу проводить инициализацию, так как для него надо отправлять 2 запроса на устройство.
Как мне контролировать соединение или же обрабатывать исключение от fwrite?