2012-03-03 13 views
5

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

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

+1

[phpws](http://code.google.com/p/phpws/source/browse/phpws/websocket.framing.php)から移植することはどうですか?コードはかなり単純です。 – Chikei

答えて

5

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

6

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

フレーム処理およびハンドシェイク処理コードは、ソケット/ネットワークコードとは完全に別です。 policy-refactorブランチのprocessorsフォルダを見てください。ドラフト76(hybi_legacy)とRFC6455(hybi/hybi_header)用のものがあります。フレームプロセッサは、STLストリームから読み込み、独自のネットワークコードまたは他のソースから書き込むことができます。

さらに詳しい質問がある場合は、githubでPMを送ってください。

+5

コメントを使用して、ここでもう質問をしてください。他の人もそれから学ぶことができます。 –

関連する問題