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

WARNING Client has NOT closed socket first

Добавлено: Вс янв 21, 2018 11:51 am
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]
Собственно, все другие команды тоже вызывают такой ворнинг, хоть и не всегда.
Процессу это не мешает, всё работает норм, но наличие ежесекундного ворнинга напрягает. Как можно его отключить или исправить?

Re: WARNING Client has NOT closed socket first

Добавлено: Пн янв 22, 2018 10:55 am
Timur
По идее клиент должен закрывать сокет первым:
https://github.com/CGRU/cgru/blob/maste ... ing.cpp#L6

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

Но пока можно на это забить, если считать что PythonAPI клиентов куда меньше чем afrender-ов при большой ферме, где у сервера могут закончиться 2^16 портов.

Re: WARNING Client has NOT closed socket first

Добавлено: Пн янв 22, 2018 1:44 pm
paulwinex
Думаю, лучше в команду добавить размер сообщения, но пока не критично и забъем на это. Спасибо.