VbFcgi
Напишите серверную часть своего веб-приложения на VB6! VbFcgi позволяет легко использовать ваши текущие знания в области программирования и даже размещать существующие клиент/серверные приложения VB6 в Интернете.

Введение
VbFcgi — это платформа хоста/сервера FCGI для веб-приложений Visual Basic 6 (VB6) ActiveX/COM DLL. Он был разработан для Nginx, но должен работать с любым веб-сервером, реализующим спецификацию FCGI.
Схема процесса

Включенные двоичные файлы
Существует 3 основных компонента инфраструктуры VbFcgi:
- VbFcgiLib.dll — это основная библиотека платформы, которая включает в себя весь код для прослушивания и ответа на запросы FCGI от веб-сервера, а также для анализа записей параметров FCGI, файлов cookie HTTP и т. д. Этот файл должен быть включен. с каждым распространением вашего приложения FCGI.
- VbFcgiHost.exe — это основной исполняемый файл, который будет запускать прослушиватели FCGI в качестве посредника между вашим веб-сервером и вашим приложением FCGI. Он включает поддержку запуска нескольких прослушивателей на последовательных портах для балансировки нагрузки, а также отслеживает завершенные прослушиватели, которые необходимо возобновить. Наконец, он также действует как координатор завершения работы для всех запущенных экземпляров прослушивателя FCGI. Этот файл должен быть включен в каждый дистрибутив вашего приложения FCGI.
- VbFcgiApp.dll — это демонстрационный код приложения FCGI. Приведенная здесь версия представляет собой очень простое доказательство концепции, которая отправляет вверх по течению HTML-страницу с таблицей полученных параметров FCGI, а также демонстрирует базовое использование файлов cookie и параметров HTTP-запроса. Этот файл не следует включать при распространении. ваше собственное приложение FCGI! Вместо этого вам следует создать свою собственную версию, как описано в разделе «Создание собственного приложения FCGI» ниже.
Хотя вышеуказанные библиотеки DLL являются библиотеками COM ActiveX, вам НЕ нужно регистрировать их с помощью regsvr32 при развертывании для пользователей, поскольку этот код использует не требующую регистрации библиотеку DirectCOM Олафа Шмидта. Однако вам следует зарегистрировать вышеуказанные библиотеки DLL на своей машине разработки.
Также включена двоичная сборка Nginx с базовой конфигурацией для поддержки одного прослушивателя хост-сервера FCGI на локальном хосте: 9100. Это включено для удобства и для демонстрации минимальной конфигурации. В большинстве случаев у вас должен быть правильно настроенный Nginx (или другой веб-сервер).
Наконец, я также включил в комплект великолепную библиотеку vbRichClient5 Олафа Шмидта (http://www.vbrichclient.com/), опять же ради удобства. Вы всегда можете получить последнюю версию на сайте vbRichClient5.
Демо-использование
- Если у вас еще нет работающего веб-сервера, запустите nginx из командной строки, перейдя в папку .VbFcgibinnginx и выполнив команду nginx.exe. Если у вас уже есть работающий веб-сервер, убедитесь, что он настроен на передачу запросов *.fcgi от браузера на восходящий порт 127.0.0.1, порт 9100.
- В командной строке запустите VbFcgiHost.exe с помощью следующей команды: vbfcgihost.exe /host 127.0.0.1 /port 9100 /spawn 1
- Откройте браузер и перейдите по адресу http://127.0.0.1/vbfcgiapp.fcgi — вы должны увидеть ответ HTML от демонстрационного приложения FCGI.
Создание собственного приложения FCGI
Вы можете использовать прилагаемый исходный код VbFcgiApp в качестве отправной точки — вся работа выполняется в методе IFcgiApp_ProcessRequest, поэтому тщательно его просмотрите.
Чтобы написать собственное приложение FCGI с нуля, необходимо:
- Запустите новый проект ActiveX DLL в VB6.
- Измените имя проекта с «Project1» на «MyFcgiApp» (или любое другое имя, которое вы хотите).
- Измените имя «Class1» на «CFcgiApp».
- Добавьте ссылку на VbFcgiLib из меню «Проекты» > «Ссылки».
- В разделе «Общие» класса «CFcgiApp» введите; Реализует VbFcgiLib.IFcgiApp.
- Выберите «IFcgiApp» из раскрывающегося списка в представлении кода. Он создаст для вас метод IFcgiApp_ProcessRequest.
- Напишите код своего приложения с помощью метода IFcgiApp_ProcessRequest (остальная часть чертовой совы).
- Создайте свое DLL-приложение.
- Сделайте копию встроенной DLL и измените расширение на .fcgi.
- Переместите файл .fcgi в ту же папку, что и файлы VbFcgiHost.exe и VbFcgiLib.dll.
ПРИМЕЧАНИЕ. Вам не нужно регистрировать DLL приложения FCGI или VbFcgiLib.dll при его распространении, поскольку в этой платформе используется создание экземпляров без регистрации.
Когда вы впоследствии запустите VbFcgiHost.exe, он будет использовать ваш .fcgi в качестве «плагина» (своего рода) для ответа на соответствующие запросы FCGI. Например, если ввести http://localhost/myapp.fcgi, VbFcgiHost создаст экземпляр класса CFcgiApp из библиотеки DLL myapp.fcgi, хранящейся в той же папке, а затем вызовет IFcgiApp_ProcessRequest в этом классе.
Наслаждаться!