2

私は c++ の初心者で、Web プロトコルや WebSocket についてほとんど何も知らないので、ばかげているように思えるかもしれません。

私は 100% ajax の Web サイトを作成しており、WebSocket を組み込みたいと考えています。Fastcgi++ は ajax の要求に期待できるすべてのものですが、websocket はありません。websocket++ は多かれ少なかれ単純な#include.

私はfastcgi ++を理解したと思います。ほとんどのアクションは、セッションデータ http://www.nongnu.org/fastcgipp/doc/2.1/a00005.html に対して発生Fastcgipp::RequestするFastcgipp::Http::Sessionsようですただし、websocket https://github.com/zaphoyd/websocketpp/wiki/Creating-Applications-using-WebSocket--server::handlerを処理するには、websocket ++ で同じことを行う必要があると思いますが、今では海で迷っています。

C ++の経験がまったくない私を入力してください。仮想継承を使用する必要があると思いますが、わかりません。また、両方を適切に「サブクラス化」することさえできた場合、それらが互いに重複しないようにするにはどうすればよいですか?

websocket++ が fastcgi++ のセッション管理を使用する方法の基本的な例を示してください。

4

1 に答える 1

4

WebSocket 接続は、HTTP 要求/応答ワークフローでは処理できません。通常の HTTP リクエストと WebSocket リクエストの両方で fastcgi++ のようなものを使用するには、WebSocket ハンドシェイクを認識し、それを HTTP として処理する代わりに別のハンドラーにパイプする何らかの方法が必要です。そのドキュメントには、そのような明らかなパス スルー モードはありませんが、何かが欠けている可能性があります。

そのような機能が存在する場合、WebSocket++ をストリーム モードで使用して、そのネットワーク要素をすべて無効にし、別のネットワーク ライブラリからパイプされたバイトのストリームのみを処理できます。

いくつかの代替案:

  • WebSocket++ は HTTP パススルーをサポートしています。これは基本的に、上記の説明とは逆です。WebSocket++ はネットワーク層として使用されます。着信 WebSocket 接続を処理し、HTTP 要求を他のサブシステムに渡します。
  • WebSocket++ と fastcgi++ は、異なるポートまたは異なるホスト名で実行できます。これは、同じプログラムまたは別のプログラムで実行できます。クライアント側の要求が適切なホスト/ポートに送信されます。

免責事項: 私は WebSocket++ の作成者です

于 2013-03-06T13:45:06.140 に答える