web-dev-qa-db-ja.com

WebSocketライブラリ

LinuxでC++を使用してWebSocket APIにアクセスしたい。私はさまざまなライブラリを見ました(libwebsocketsまたはwebsocketpp)が、どちらを使うべきかわかりません。行う必要があるのは、APIに接続してデータを受信する文字列にすることだけです。だから私は非常にbasicでシンプルなソリューションを探しています。誰かがすでにWebSocketライブラリを使用した経験があるのでしょうか?

13
thesys

高レベルAPIの場合、 cpprest ライブラリの_ws_client_を使用できます{ websocketpp }をラップします。

エコーサーバー に対して実行されるサンプルアプリケーション:

_#include <iostream>
#include <cpprest/ws_client.h>

using namespace std;
using namespace web;
using namespace web::websockets::client;

int main() {
  websocket_client client;
  client.connect("ws://echo.websocket.org").wait();

  websocket_outgoing_message out_msg;
  out_msg.set_utf8_message("test");
  client.send(out_msg).wait();

  client.receive().then([](websocket_incoming_message in_msg) {
    return in_msg.extract_string();
  }).then([](string body) {
    cout << body << endl; // test
  }).wait();

  client.close().wait();

  return 0;
}
_

ここでは、タスクを待機するために.wait()メソッドが使用されていますが、コードを簡単に変更して、非同期方式でI/Oを実行できます。

20