2

私はUbuntuで作業しており、ブラウザからの受信Websocket接続で完全に機能するwebsocket ++ライブラリを使用するc ++でサーバーを作成しています(そこでjavascriptを使用しました)。

今、いくつかのパフォーマンス テストを行い、多くの自動化された「偽の」クライアントを接続したいと考えています。

そのために、何度も起動してそのサーバーに接続するプログラムを書きたかったのです。これを行うために、次のコードを試しました。

#include "websocketpp/src/roles/client.hpp"
#include "websocketpp/src/websocketpp.hpp"

#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/thread.hpp>

#include "FakeClient.h"

using boost::asio::ip::tcp;
using websocketpp::client;


FakeClient::FakeClient()
{
    thisPointer = boost::shared_ptr<FakeClient>(this);

    client endpoint(thisPointer);

    endpoint.alog().unset_level(websocketpp::log::alevel::ALL);
    endpoint.elog().unset_level(websocketpp::log::elevel::ALL);

    endpoint.elog().set_level(websocketpp::log::elevel::RERROR);
    endpoint.elog().set_level(websocketpp::log::elevel::FATAL);

    endpoint.connect("ws://localhost:9001/");

    boost::thread t(&FakeClient::run, *this);

    t.join();
}

void FakeClient::run()
{
    while(true)
    {
        // send stuff here
        usleep(100);
    }
}

サーバーが起動し、偽のクライアントが接続しようとすると、次のエラーのみが表示されます。

2013-04-23T16:00:02 [2] fail_on_expire timer expired with message: Timeout on WebSocket handshake

ただし、サーバーが起動していない場合、エラー メッセージは表示されないため、何らかの接続が発生していることは間違いありません。しかし、私は自分が間違っていることを理解できません。websocket++ lib を介して 2 つのバイナリ プログラムを簡単に接続することさえ可能ですか?

最高のパフォーマンス テスト結果を得るには、サーバーと偽のクライアント間の通信に WebSocket を使用する必要があると思います。

ご協力ありがとうございました、

クーンシ

4

1 に答える 1