Событие on_sock_postdata
| Назначение: | Генерируется, когда в VAR-буфере сокета есть хотя бы один байт данных, но только после того, как VAR-буфер хотя бы раз заполнился полностью в ходе обработки текущего HTTP-запроса. |
| Объявление: | on_sock_postdata |
| См. также: | sock.varbuffrq, sock.varlen |
Подробности
HTTP-запросы могут содержать большой объём данных HTTP-переменных, которые помещаются в VAR-буфер. Объём таких данных может превысить ёмкость VAR-буфера. Если не обработать это должным образом, выполнение HTTP-запроса может зависнуть навсегда - см. Работа с HTTP-переменными.
После того как сокет принял HTTP-соединение, это событие (для данного соединения) не генерируется, пока VAR-буфер не заполнится. Как только это произошло, событие генерируется, даже если в буфере ожидает обработки всего один байт. Два события on_sock_postdata одного сокета никогда не стоят в очереди вместе - следующее событие может быть сгенерировано только после обработки предыдущего.
При входе в обработчик этого события свойство sock.num автоматически переключается на сокет, для которого событие было сгенерировано.
Для работы с данными VAR-буфера используйте метод sock.gethttprqstring или свойство sock.httprqstring.