VbFcgi
Codifique o back-end do seu aplicativo da web em VB6! O VbFcgi facilita o aproveitamento de seu conhecimento atual de programação e até mesmo a disponibilização de seus aplicativos cliente/servidor VB6 existentes na web.
Introdução
VbFcgi é uma estrutura de host/servidor FCGI para aplicativos da Web DLL ActiveX/COM Visual Basic 6 (VB6). Foi desenvolvido em Nginx, mas deve funcionar com qualquer servidor web que implemente a especificação FCGI.
Diagrama de Processo
Binários incluídos
Existem 3 componentes principais da estrutura VbFcgi:
- VbFcgiLib.dll - Esta é a principal biblioteca do framework que inclui todo o código para ouvir e responder às solicitações FCGI do servidor web, bem como analisar registros para parâmetros FCGI, cookies HTTP, etc... Este arquivo deve ser incluído com cada distribuição do seu aplicativo FCGI.
- VbFcgiHost.exe - Este é o principal arquivo executável que irá gerar ouvintes FCGI como um intermediário entre seu servidor web e seu aplicativo FCGI. Inclui suporte para execução de vários ouvintes em portas sequenciais para balanceamento de carga e também monitora ouvintes encerrados que precisam ser reiniciados. Por último, ele também atua como um coordenador de desligamento para todas as instâncias de escuta FCGI em execução. Este arquivo deve ser incluído em todas as distribuições do seu aplicativo FCGI.
- VbFcgiApp.dll - Este é o código de demonstração do aplicativo FCGI. A versão incluída aqui é uma prova de conceito muito básica que enviará uma página HTML upstream com uma tabela dos parâmetros FCGI que foram recebidos, também demonstra o uso básico de cookies e parâmetros de consulta HTTP Este arquivo não deve ser incluído na distribuição seu próprio aplicativo FCGI! Em vez disso, você deve criar sua própria versão conforme descrito na seção Criando seu próprio aplicativo FCGI abaixo.
Embora as DLLs acima sejam bibliotecas COM ActiveX, você NÃO precisa registrá-las com regsvr32 ao implantar para os usuários, pois esse código usa a biblioteca DirectCOM sem registro de Olaf Schmidt. No entanto, você deve registrar as DLLs acima em sua máquina de desenvolvimento.
Também está incluída uma compilação binária do Nginx com uma configuração básica para suportar um único ouvinte de servidor host FCGI em localhost:9100. Isso foi incluído por conveniência e para demonstrar uma configuração mínima. Você deve ter seu próprio Nginx (ou outro servidor web) configurado corretamente em execução na maioria dos casos.
Por último, também incluí a excelente biblioteca vbRichClient5 de Olaf Schmidt (http://www.vbrichclient.com/), novamente por uma questão de conveniência. Você sempre pode obter a versão mais recente no site vbRichClient5.
Uso de demonstração
- Se você ainda não tem um servidor web em execução, inicie o nginx na linha de comando, acessando a pasta .VbFcgibinnginx e executando o comando nginx.exe. Se você já possui um servidor web em execução, certifique-se de que ele esteja configurado para passar solicitações *.fcgi do upstream do navegador para 127.0.0.1, porta 9100.
- Na linha de comando, inicie VbFcgiHost.exe com o seguinte comando: vbfcgihost.exe /host 127.0.0.1 /port 9100 /spawn 1
- Abra seu navegador e vá para http://127.0.0.1/vbfcgiapp.fcgi - você deverá ver a resposta HTML do aplicativo de demonstração FCGI.
Criando seu próprio aplicativo FCGI
Você pode usar o código-fonte VbFcgiApp incluído como ponto de partida - todo o trabalho é feito no método IFcgiApp_ProcessRequest, portanto, faça uma revisão completa.
Para escrever seu próprio aplicativo FCGI do zero, você deve:
- Inicie um novo projeto ActiveX DLL em VB6.
- Altere o nome do projeto de "Projeto1" para "MyFcgiApp" (ou qualquer nome que você gostaria que tivesse).
- Altere o nome de "Class1" para "CFcgiApp".
- Adicione uma referência a VbFcgiLib no menu Projetos > Referências.
- Na seção Geral da classe "CFcgiApp", digite; Implementa VbFcgiLib.IFcgiApp
- Selecione "IFcgiApp" na lista suspensa na visualização de código. Ele criará o método IFcgiApp_ProcessRequest para você.
- Codifique seu aplicativo no método IFcgiApp_ProcessRequest (o resto da maldita coruja).
- Crie seu aplicativo DLL.
- Faça uma cópia da DLL criada e altere a extensão para .fcgi.
- Mova o arquivo .fcgi para a mesma pasta dos arquivos VbFcgiHost.exe e VbFcgiLib.dll.
NOTA: Você não precisa registrar a DLL do aplicativo FCGI, nem o VbFcgiLib.dll ao distribuí-lo, pois a instanciação sem registro é usada por esta estrutura.
Quando você executar o VbFcgiHost.exe posteriormente, ele usará seu .fcgi como um "plugin" (de certa forma) para responder às solicitações FCGI correspondentes. Por exemplo, digitar http://localhost/myapp.fcgi fará com que VbFcgiHost crie uma instância da classe CFcgiApp a partir da DLL myapp.fcgi armazenada na mesma pasta e, em seguida, chamará IFcgiApp_ProcessRequest nessa classe.
Aproveitar!