使用websocketpp库连接到c++;websocket服务器 我在Ubuntu工作,我在C++中编写了一个服务器,使用WebStuts++库,它对于从浏览器访问的WebSutoCub连接非常有效(我在那里使用JavaScript)。

使用websocketpp库连接到c++;websocket服务器 我在Ubuntu工作,我在C++中编写了一个服务器,使用WebStuts++库,它对于从浏览器访问的WebSutoCub连接非常有效(我在那里使用JavaScript)。,c++,websocket++,C++,Websocket++,现在我想做一些性能测试,并连接许多自动“假”客户端 为此,我想编写一个可以多次启动并连接到该服务器的程序。为此,我尝试了以下代码: #include "websocketpp/src/roles/client.hpp" #include "websocketpp/src/websocketpp.hpp" #include <boost/asio.hpp> #include <boost/bind.hpp> #include <boost/thread.hpp>

现在我想做一些性能测试,并连接许多自动“假”客户端

为此,我想编写一个可以多次启动并连接到该服务器的程序。为此,我尝试了以下代码:

#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);
    }
}
但是,当服务器未启动时,不会出现错误消息,因此肯定会发生某种连接。但我不知道我做错了什么。甚至可以通过websocket++库轻松连接2个二进制程序吗

为了获得最佳的性能测试结果,我想WebSocket应该用于服务器和假客户端之间的通信

谢谢你的帮助


Koonschi

WebSocket++作者在这里。WebSocket++绝对能够与自己对话。我创建了一些示例来演示如何做到这一点。请看以下两个(注意:这些示例使用了库的最新0.3.x版本)

遥测客户端:此客户端连接到指定的WebSocket服务器,并每秒发送一次消息。

打印服务器:此服务器侦听连接并打印收到的任何消息。

您在http exchange上窥探过吗?将是有用的WebSocket确实支持二进制作为“完全支持:RFC6455”尝试增加您的配置中的超时,因为服务器可能对您有用,测试服务器/客户端
2013-04-23T16:00:02 [2] fail_on_expire timer expired with message: Timeout on WebSocket handshake