Страница 1 из 1

проверка доступности порта на примере работы сервиса MQTT

Добавлено: Пн май 15, 2017 9:43 am
directman66
Делюсь небольшим примером:
СпойлерПоказать
//Проверка на работоспособность функции fsockopen
if(!function_exists('fsockopen'))
{ say ( 'fsockopen не работает!'); return; }
//Используем определённые сервера на которых точно открыты нужные порты
$tests = array(
1883 => '192.168.1.35'
)
;

//По циклу тестируем
foreach($tests as $port => $server){
//Соединяемся
$fp = @fsockopen($server,$port,$errno,$errstr,5);
//Если удачное соединение
if($fp){
sg('mqttserver.statecolor','green');
sg('mqttserver.error','');
fclose($fp);}



//Если неудачное соединение
else{

sg('mqttserver.statecolor','red');
//sg('mqttserver.error',$errno.' : '.$errstr');

}}
далее из меню показываем текущий цвет
<font size="4" color="%mqttserver.stateColor%" title="MQTT">●</font>

и не забываем вызывать сценарий например раз в минуту из таймера ClockChime.onNewMinute
RunScript('mqtt_open');

Re: проверка доступности порта на примере работы сервиса MQT

Добавлено: Пн май 15, 2017 10:16 am
nick7zmail
Я бы ещё добавил проверку к статусу сети (который в классе systemStates объекте Communication), и туда бы ошибку забирал из вашего объекта, если что-то не так. А к красному или желтому статусу отнести - уже сами по уровню важности определяйте))

http://majordomo.smartliving.ru/Main/BasicsStates