[英]Using websocketpp library to connect to a c++ websocket server
我正在 Ubuntu 上工作,我正在用 C++ 編寫一個使用 websocket++ 庫的服務器,它非常適合來自瀏覽器的傳入 websocket 連接(我在那里使用了 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 個二進制程序嗎?
為了獲得最佳性能測試結果,我猜應該使用 websockets 來在服務器和假客戶端之間進行通信。
謝謝您的幫助,
孔斯基
WebSocket++ 作者在這里。 WebSocket++ 絕對能夠自言自語。 我創建了一些示例來演示如何執行此操作。 看看以下兩個(注意:這些示例使用最新的 0.3.x 版本的庫)。
遙測客戶端:此客戶端連接到指定的 WebSocket 服務器並每秒發送一次消息。 https://github.com/zaphoyd/websocketpp/blob/experimental/examples/telemetry_client/telemetry_client.cpp
打印服務器:此服務器偵聽連接並打印出收到的任何消息。 https://github.com/zaphoyd/websocketpp/blob/experimental/examples/print_server/print_server.cpp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.