VbFcgi
Web アプリケーションのバックエンドを VB6 でコーディングしてください。 VbFcgi を使用すると、現在のプログラミング知識を簡単に活用でき、Web 上で既存の VB6 クライアント/サーバー アプリを入手することもできます。
導入
VbFcgi は、Visual Basic 6 (VB6) ActiveX/COM DLL Web アプリケーション用の FCGI ホスト/サーバー フレームワークです。これは Nginx に対して開発されましたが、FCGI 仕様を実装するあらゆる Web サーバーで動作するはずです。
プロセス図
含まれるバイナリ
VbFcgi フレームワークには 3 つの主要コンポーネントがあります。
- VbFcgiLib.dll - これは、Web サーバーからの FCGI リクエストをリッスンして応答するためのすべてのコード、および FCGI パラメータや HTTP Cookie などのレコードを解析するためのコードがすべて含まれるメイン フレームワーク ライブラリです。このファイルは含める必要があります。 FCGI アプリケーションのすべてのディストリビューションで。
- VbFcgiHost.exe - これは、Web サーバーと FCGI アプリケーション間のブローカーとして FCGI リスナーを生成するメインの実行可能ファイルです。これには、負荷分散のために連続ポート上で複数のリスナーを実行するためのサポートが含まれており、また、再生成が必要な終了したリスナーを監視します。最後に、実行中のすべての FCGI リスナー インスタンスのシャットダウン コーディネーターとしても機能します。このファイルは、FCGI アプリケーションのすべてのディストリビューションに含める必要があります。
- VbFcgiApp.dll - これはデモ FCGI アプリケーション コードです。ここに含まれるバージョンは、受信した FCGI パラメータのテーブルを含む HTML ページをアップストリームに送信する非常に基本的な概念実証であり、Cookie と HTTP クエリ パラメータの基本的な使用法も示しています。このファイルは配布時に含めるべきではありません独自の FCGI アプリケーション!代わりに、以下の「独自の FCGI アプリケーションの作成」セクションで説明されているように、独自のバージョンを作成する必要があります。
上記の DLL は COM ActiveX ライブラリですが、このコードは Olaf Schmidt の登録不要の DirectCOM ライブラリを使用しているため、ユーザーに展開するときに regsvr32 に登録する必要はありません。ただし、上記の DLL を開発マシンに登録する必要があります。
また、localhost:9100 上の単一の FCGI ホスト サーバー リスナーをサポートする基本構成を備えた Nginx のバイナリ ビルドも含まれています。これは便宜上、また最小限の構成を示すために含まれています。ほとんどの場合、適切に設定された独自の Nginx (または他の Web サーバー) が実行されている必要があります。
最後に、これも便宜上、Olaf Schmidt の優れた vbRichClient5 ライブラリ (http://www.vbrichclient.com/) もバンドルしました。最新バージョンは、vbRichClient5 Web サイトからいつでも入手できます。
デモの使用法
- Web サーバーをまだ実行していない場合は、.VbFcgibinnginx フォルダーに移動し、nginx.exe コマンドを実行して、コマンド ラインから nginx を起動します。すでに Web サーバーを実行している場合は、*.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 にアクセスします。デモ FCGI アプリケーションからの HTML 応答が表示されるはずです。
独自の FCGI アプリケーションの作成
付属の VbFcgiApp ソース コードを開始点として使用できます。すべての作業は IFcgiApp_ProcessRequest メソッドで実行されるため、徹底的に確認してください。
独自の FCGI アプリケーションを最初から作成するには、次のことを行う必要があります。
- VB6 で新しい ActiveX DLL プロジェクトを開始します。
- プロジェクトの名前を「Project1」から「MyFcgiApp」(または任意の名前) に変更します。
- 「Class1」の名前を「CFcgiApp」に変更します。
- [プロジェクト] メニュー > [参照] から VbFcgiLib への参照を追加します。
- 「CFcgiApp」クラスの「全般」セクションに、次のように入力します。 VbFcgiLib.IFcgiApp を実装します。
- コードビューのドロップダウンリストから「IFcgiApp」を選択します。 IFcgiApp_ProcessRequest メソッドが作成されます。
- IFcgiApp_ProcessRequest メソッドでアプリをコーディングします (クソフクロウの残りの部分)。
- DLL アプリをビルドします。
- ビルドされた DLL のコピーを作成し、拡張子を .fcgi に変更します。
- .fcgi ファイルを VbFcgiHost.exe および VbFcgiLib.dll ファイルと同じフォルダーに移動します。
注:このフレームワークでは登録不要のインスタンス化が使用されているため、FCGI アプリケーション DLL や配布時に VbFcgiLib.dll を登録する必要はありません。
その後、VbFcgiHost.exe を実行すると、対応する FCGI 要求に応答するための (一種の) 「プラグイン」として .fcgi が使用されます。たとえば、「http://localhost/myapp.fcgi」と入力すると、VbFcgiHost は同じフォルダーに保存されている myapp.fcgi DLL から CFcgiApp クラスのインスタンスを作成し、そのクラスで IFcgiApp_ProcessRequest を呼び出します。
楽しむ!