如何使用带有cpprest的websocket流式传输数据



我有一个cpprestsdk包,用于连接和流式传输来自某个端点的数据。

using namespace web;
using namespace web::websockets::client;
websocket_client clientbtcusdt;
clientbtcusdt.connect(std::wstring(L"wss://stream.binance.com:9443/ws/" + std::wstring(L"btcusdt") + L"@depth20@100ms")).wait();
clientbtcusdt.receive().then([](websocket_incoming_message in_msg)
{
return in_msg.extract_string();
}).then([&](std::string body)
{
Json::Value json;
std::string parsingError;
std::stringstream streamResponse(body);
Json::parseFromStream(Json::CharReaderBuilder(), streamResponse, &json, &parsingError);
std::cout << json << std::endl;
}).wait();

这将接收一条json消息,然后关闭连接。

如何永久流式传输
如果我想通过将其包装成无限循环来永久地进行流式传输,然后想要很少这样的流,是否应该将每个无限循环包装成可调用的,并将线程附加到每个这样的套接字?

您应该使用websocket_callback_client而不是websocket_client。

请看这个:

有时,如果您需要从服务器接收大量消息,重复调用和处理每个任务可能会很乏味,而且容易出错。我们有另一个类,它允许为来自服务器的消息设置回调。下面是一个注册回调的简单示例:websocket_client::receive((websocket_callback_client

继续接收来自websocket 的消息

相关内容

  • 没有找到相关文章

最新更新