2012-03-02 120 views
12

私はC++を使用してwebsocketクライアントを実装する必要があります。私はすでにRubyを使って基本的なwebsocketサーバーを作っています。しかし今、私はc/C++を使って接続をテストしたいと思っています。 c/C++でWebソケットを実装するのに利用できるライブラリを簡単に使用できますか?Websocketクライアント(C++)

ありがとうございます。

+9

くそ、私は人々が_C/C++ _を書くとき、あなたの心を作ります、_C_または_C++ _を使用していますか? **同じ言語ではありません**。 – ApprenticeHacker

+0

私はあなたに同意します..しかし、クライアントはcまたはC++のいずれかでデモを求めています。そのために残念。 :-) – hbdev012

+0

問題ありません。笑。 – ApprenticeHacker

答えて

4

boost :: asioとPoco.Netなどがありますが、C-APIのバークレーソケットはそれほど難しくないので、これらのライブラリを使用したくない場合は、それらのライブラリを参照してください。

編集:申し訳ありませんが、おそらく "websockets"に間違っています。あなたはここを見ましたか? http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementationsSimple C++ WebSocket Client (draft 08+ compatible)?から)

+0

現在それを探しています。そして私はwebsocket ++が私の実装に有益であることを発見しました。私はそれがうまくいくことを望む。ありがとう:-) – hbdev012

+0

websocket ++を使用するための+1:仕様(最終的なRFC6455)と高性能に非常に準拠しています。 ASIOをベースにしています。 – oberstet

+0

強くお勧めするASIO – 111111

7

Websocket ++はあなたのためにする必要があります。

サーバー/クライアントが実装するWebsocketのバージョンが重要であることはわかっていますが。

0

多くの検索の後、私はPOCOの上に座っているこの便利なプロジェクトを見つけました。私はそれを試して、私の経験と一緒に投稿するつもりです。

https://github.com/hannon235/socket.io-poco/blob/master/examples/TestClient/main.cpp

更新:

は、あまりにも多くの時間のために、このライブラリを統合しようとしました。現在完全には焼かれていません。プロダクション環境で使用するには、より多くの作業が必要です。

6

(詳細は)偉大なライブラリがここにあります、Boost.Asioに大きく構築さBeast.WebSocket: http://vinniefalco.github.io/

はここでのWebSocketを語るプログラム例です:

#include <beast/websocket.hpp> 
#include <beast/buffers_debug.hpp> 
#include <boost/asio.hpp> 
#include <iostream> 
#include <string> 

int main() 
{ 
    // Normal boost::asio setup 
    std::string const host = "echo.websocket.org"; 
    boost::asio::io_service ios; 
    boost::asio::ip::tcp::resolver r(ios); 
    boost::asio::ip::tcp::socket sock(ios); 
    boost::asio::connect(sock, 
     r.resolve(boost::asio::ip::tcp::resolver::query{host, "80"})); 

    using namespace beast::websocket; 

    // WebSocket connect and send message using beast 
    stream<boost::asio::ip::tcp::socket&> ws(sock); 
    ws.handshake(host, "/"); 
    ws.write(boost::asio::buffer("Hello, world!")); 

    // Receive WebSocket message, print and close using beast 
    beast::streambuf sb; 
    opcode op; 
    ws.read(op, sb); 
    ws.close(close_code::normal); 
    std::cout << 
     beast::debug::buffers_to_string(sb.data()) << "\n"; 
} 
+0

私はBoostバージョン:1.53.0を持っています。私は致命的なエラーを受けています:boost/beast/websocket。hpp:そのようなファイルやディレクトリはありません。 – AMB

+0

あなたはBoost 1.58.0以降が必要です。あなたのインクルードパスにbeast/includeディレクトリを追加する必要があります。 –

+0

私は最新のブーストをダウンロードし、それで獣を見つけることができません。とにかくブーストと獣をダウンロードしてコードをコンパイルしようとしましたが、多くのエラーが発生しましたので、今度はeasywsclientでテストします。 idk何が間違っていた、それはいくつかの.hppファイルが悪い投稿完全なエラー明日、WebSocketクライアントを実行する方法について、ステップバイステップでなければならないと言いました。ありがとう – AMB

関連する問題