修改
This commit is contained in:
parent
2759f86c76
commit
2cdd2d4f4f
@ -1,28 +1,30 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <websocketpp/connection.hpp>
|
#include <websocketpp/client.hpp>
|
||||||
|
#include <websocketpp/config/asio_no_tls_client.hpp>
|
||||||
|
|
||||||
namespace websocketpp
|
// websocketpp 客户端类型
|
||||||
{
|
using ws_client = websocketpp::client<websocketpp::config::asio_client>;
|
||||||
namespace client
|
|
||||||
{
|
|
||||||
}
|
|
||||||
} // namespace websocketpp
|
|
||||||
|
|
||||||
class TunnelClient
|
class TunnelClient
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TunnelClient(const std::string& vid, const std::string& server_ws_url, int local_http_port);
|
TunnelClient(const std::string& vid, const std::string& server_ws_url, int local_http_port);
|
||||||
|
|
||||||
void start();
|
void start();
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void run_loop();
|
void run_loop();
|
||||||
|
|
||||||
// 新增:流式处理 & 安全发送
|
// 处理 Server 的 JSON 请求(GET / POST / 大文件流)
|
||||||
void handle_request_and_reply(const nlohmann::json& req);
|
void handle_request_and_reply(const nlohmann::json& req);
|
||||||
|
|
||||||
|
// 线程安全发送函数
|
||||||
void send_text_safe(const std::string& s);
|
void send_text_safe(const std::string& s);
|
||||||
void send_binary_safe(const void* data, size_t len);
|
void send_binary_safe(const void* data, size_t len);
|
||||||
|
|
||||||
@ -34,7 +36,7 @@ class TunnelClient
|
|||||||
std::atomic<bool> running_{false};
|
std::atomic<bool> running_{false};
|
||||||
std::thread th_;
|
std::thread th_;
|
||||||
|
|
||||||
// websocketpp 句柄
|
// websocketpp
|
||||||
|
ws_client* client_ = nullptr;
|
||||||
websocketpp::connection_hdl hdl_;
|
websocketpp::connection_hdl hdl_;
|
||||||
ws_client* client_ = nullptr; // 指向 run_loop 的 client
|
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user