VbFcgi
Codez le back-end de votre application web en VB6 ! VbFcgi permet d'exploiter facilement vos connaissances actuelles en programmation et même d'obtenir vos applications client/serveur VB6 existantes sur le Web.
Introduction
VbFcgi est un framework hôte/serveur FCGI pour les applications Web DLL ActiveX/COM Visual Basic 6 (VB6). Il a été développé avec Nginx, mais devrait fonctionner avec n'importe quel serveur Web implémentant la spécification FCGI.
Diagramme de processus
Binaires inclus
Il existe 3 composants principaux du framework VbFcgi :
- VbFcgiLib.dll - Il s'agit de la bibliothèque principale qui inclut tout le code permettant d'écouter et de répondre aux requêtes FCGI du serveur Web, ainsi que d'analyser les enregistrements pour les paramètres FCGI, les cookies HTTP, etc... Ce fichier doit être inclus. à chaque distribution de votre application FCGI.
- VbFcgiHost.exe - Il s'agit du fichier exécutable principal qui générera des écouteurs FCGI en tant qu'intermédiaire entre votre serveur Web et votre application FCGI. Il inclut la prise en charge de l'exécution de plusieurs écouteurs sur des ports séquentiels pour l'équilibrage de charge, et il surveille également les écouteurs terminés qui nécessitent une réapparition. Enfin, il agit également en tant que coordinateur d'arrêt pour toutes les instances d'écoute FCGI en cours d'exécution. Ce fichier doit être inclus avec chaque distribution de votre application FCGI.
- VbFcgiApp.dll - Il s'agit du code de l'application FCGI de démonstration. La version incluse ici est une preuve de concept très basique qui enverra une page HTML en amont avec un tableau des paramètres FCGI reçus, démontre également l'utilisation de base des cookies et des paramètres de requête HTTP. Ce fichier ne doit pas être inclus lors de la distribution. votre propre application FCGI ! Au lieu de cela, vous devez créer votre propre version comme décrit dans la section Création de votre propre application FCGI ci-dessous.
Bien que les DLL ci-dessus soient des bibliothèques COM ActiveX, vous n'avez PAS besoin de les enregistrer auprès de regsvr32 lors du déploiement auprès des utilisateurs, car ce code utilise la bibliothèque DirectCOM sans inscription d'Olaf Schmidt. Vous devez cependant enregistrer les DLL ci-dessus sur votre machine de développement.
Une version binaire de Nginx est également incluse avec une configuration de base pour prendre en charge un seul écouteur de serveur hôte FCGI sur localhost:9100. Ceci est inclus par souci de commodité et pour démontrer une configuration minimale. Vous devriez avoir votre propre Nginx (ou autre serveur Web) correctement configuré en cours d'exécution dans la plupart des cas.
Enfin, j'ai également regroupé l'excellente bibliothèque vbRichClient5 d'Olaf Schmidt (http://www.vbrichclient.com/), toujours par souci de commodité. Vous pouvez toujours obtenir la dernière version sur le site Web vbRichClient5.
Utilisation de la démo
- Si vous n'avez pas encore de serveur Web en cours d'exécution, démarrez nginx à partir de la ligne de commande en accédant au dossier .VbFcgibinnginx, puis en exécutant la commande nginx.exe. Si vous disposez déjà d'un serveur Web en cours d'exécution, assurez-vous qu'il est configuré pour transmettre les requêtes *.fcgi du navigateur en amont vers le port 127.0.0.1 9100.
- Depuis la ligne de commande, démarrez VbFcgiHost.exe avec la commande suivante : vbfcgihost.exe /host 127.0.0.1 /port 9100 /spawn 1
- Ouvrez votre navigateur et accédez à http://127.0.0.1/vbfcgiapp.fcgi - vous devriez voir la réponse HTML de l'application de démonstration FCGI.
Créer votre propre application FCGI
Vous pouvez utiliser le code source VbFcgiApp inclus comme point de départ - tout le travail est effectué dans la méthode IFcgiApp_ProcessRequest, alors examinez-le en profondeur.
Afin d'écrire votre propre application FCGI à partir de zéro, vous devez :
- Démarrez un nouveau projet DLL ActiveX dans VB6.
- Changez le nom du projet de "Project1" à "MyFcgiApp" (ou quel que soit le nom que vous souhaitez lui donner).
- Remplacez le nom de « Class1 » par « CFcgiApp ».
- Ajoutez une référence à VbFcgiLib depuis le menu Projets > Références.
- Dans la section Général de la classe « CFcgiApp », tapez ; Implémente VbFcgiLib.IFcgiApp
- Sélectionnez "IFcgiApp" dans la liste déroulante en mode code. Il créera la méthode IFcgiApp_ProcessRequest pour vous.
- Codez votre application dans la méthode IFcgiApp_ProcessRequest (le reste du putain de hibou).
- Créez votre application DLL.
- Faites une copie de la DLL construite et changez l'extension en .fcgi.
- Déplacez le fichier .fcgi vers le même dossier que les fichiers VbFcgiHost.exe et VbFcgiLib.dll.
REMARQUE : Vous n'avez pas besoin d'enregistrer votre DLL d'application FCGI, ni VbFcgiLib.dll lors de sa distribution, car l'instanciation sans enregistrement est utilisée par ce framework.
Lorsque vous exécuterez ensuite VbFcgiHost.exe, il utilisera votre .fcgi comme un "plugin" (en quelque sorte) pour répondre aux requêtes FCGI correspondantes. Par exemple, en tapant http://localhost/myapp.fcgi, VbFcgiHost créera une instance de la classe CFcgiApp à partir de la DLL myapp.fcgi stockée dans le même dossier, puis appellera IFcgiApp_ProcessRequest dans cette classe.
Apprécier!