Проблема: использование неблокирующих сокетов в handler'е

Sergey Samokhin neavirc at gmail.com
Tue Jul 22 01:03:44 MSD 2008


Здравствуйте.

Есть модуль, который в своем обработчике отправляет стороннему приложению
некоторую информацию о запросе (заголовки и пр.) используя блокирующие 
сокеты.

После этого модуль получает ответ от приложения, и используя его 
генерирует response
для пользователя.

Очень хочется заменить блокирующие сокеты на неблокирующие, т.к. 
организовать
работу модуля примерно так:

1. Получив запрос от пользователя воркер отсылает данные через 
неблокирующий сокет
    и переключается к следующему запросу, не обрывая соединения с клиентом

2. Когда стороннее приложение ответило на запрос, отправленный в п. 1 
nginx возвращается
     к состоянию п.1 и используя полученные данные генерирует ответ для 
пользователя и
     закрывает соединение

Я пока очень смутно представляю как это можно было бы реализовать :/

Если такое уже где-то реализовано в nginx, то подскажите в какие 
модули/функции посмотреть =)

Нужно ли использовать какие-то nginx'овские обертки над сокетами (типа 
ngx_event_connect)?

Спасибо.

--
С уважением,
Сергей.





More information about the nginx-ru mailing list