4

通常のtcpクライアントからの接続をサポートする独自のソケット実装があります。次に、サーバープログラムにWebSocketサポートを追加したいと思います。その場合、主要なWebブラウザでサポートされているハンドシェイクおよびメッセージフレーミングプロトコルをサポートする必要があります。ハンドシェイクの部分は処理できましたが、メッセージのフレーミングとアンフレーミングの処理に行き詰まりました。WebSocketメッセージフレームのエンコードとデコードを処理し、主要なWebブラウザーで使用される主要なWebSocketプロトコルをサポートする既存のCまたはC ++ライブラリはありますか?

私が見つけた現在の実装のほとんど(つまり、libwebsocket、websocketppなど)は、独自のサーバーとクライアントライブラリを実装しています。つまり、ソケット実装を使用する必要があります。これは私の現在のプログラムで多くのことを変更する必要があり、それは私にとっての選択肢ではないので、私はそれをしたくありません。私が必要としているのは、WebSocketフレームのエンコードとデコードを処理する(および/またはハンドシェイク部分も処理する)単純なライブラリですが、必須ではありません。

4

4 に答える 4

6

Websocketpp ライブラリの作成者はこちら。

フレーム処理およびハンドシェイク処理コードは、ソケット/ネットワーク コードから完全に分離されています。policy-refactor ブランチの processor フォルダーを見てください。1 つはドラフト 76 (hybi_legacy) 用で、もう 1 つは RFC6455 (hybi/hybi_header) 用です。フレーム プロセッサは、独自のネットワーク コードまたは他のソースから入力できる STL ストリームから読み取ります。

さらに具体的な質問がある場合は、github で私に PM を送ってください。

于 2012-03-10T00:12:03.810 に答える
5

ライブラリはwebsocketpp適切に設計されており、フレーム処理クラスはソケット クラスと混在していません。BOOST および STL ライブラリに依存しています。STL は問題ではなく、BOOST の依存関係は簡単に回避できます。policy-refactor ブランチのwebsocket_frame.hppファイルから開始するだけです。

于 2012-03-03T10:45:42.300 に答える