WARNING Client has NOT closed socket first

Ответить
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

WARNING Client has NOT closed socket first

Сообщение paulwinex »

Создал свой монитор, каждые N секунд отправляю команду на сервер

Код: Выделить всё

afcmd = af.Cmd()
...
afcmd.monitorEvents(self.monitor_id)
на каждый звпрос получаю сообщение

Код: Выделить всё

Sun 21 Jan 14:24.44: WARNING Client has NOT closed socket first: 127.0.0.1:29121 SFD:900 S:SWaiting REQ: TJSON[111] ANS: TJSON[29]
Sun 21 Jan 14:24.47: WARNING Client has NOT closed socket first: 127.0.0.1:34753 SFD:1000 S:SWaiting REQ: TJSON[111] ANS: TJSON[29]
Sun 21 Jan 14:24.50: WARNING Client has NOT closed socket first: 127.0.0.1:40897 SFD:900 S:SWaiting REQ: TJSON[111] ANS: TJSON[29]
Sun 21 Jan 14:24.53: WARNING Client has NOT closed socket first: 127.0.0.1:48833 SFD:1000 S:SWaiting REQ: TJSON[111] ANS: TJSON[29]
Sun 21 Jan 14:24.56: WARNING Client has NOT closed socket first: 127.0.0.1:52673 SFD:900 S:SWaiting REQ: TJSON[111] ANS: TJSON[29]
Sun 21 Jan 14:24.59: WARNING Client has NOT closed socket first: 127.0.0.1:61633 SFD:1000 S:SWaiting REQ: TJSON[111] ANS: TJSON[29]
Sun 21 Jan 14:25.02: WARNING Client has NOT closed socket first: 127.0.0.1:4034 SFD:892 S:SWaiting REQ: TJSON[111] ANS: TJSON[29]
Собственно, все другие команды тоже вызывают такой ворнинг, хоть и не всегда.
Процессу это не мешает, всё работает норм, но наличие ежесекундного ворнинга напрягает. Как можно его отключить или исправить?
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: WARNING Client has NOT closed socket first

Сообщение Timur »

По идее клиент должен закрывать сокет первым:
https://github.com/CGRU/cgru/blob/maste ... ing.cpp#L6

Так делает афрендер, афвоч и вебгуи.
Но пока так не делает PythonAPI.
Нет пока механизма узнать что сообщение прочтено.
Для этого надо, например, пересылать сначала заголовок, где будет информация о размере предстоящего сообщения (афрендер, афвоч и вебгуи).
Ну или можно считать количество открытых и закрытых фигурных скобок, чтоб понимать что JSON объект закончился.

Но пока можно на это забить, если считать что PythonAPI клиентов куда меньше чем afrender-ов при большой ферме, где у сервера могут закончиться 2^16 портов.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: WARNING Client has NOT closed socket first

Сообщение paulwinex »

Думаю, лучше в команду добавить размер сообщения, но пока не критично и забъем на это. Спасибо.
Ответить