异步WT :: HTTP ::客户端响应和请求匹配

Asynchronous Wt::Http::Client response and request matching

本文关键字:请求 客户端 WT HTTP 异步 响应      更新时间:2023-10-16

我是 wt3 的新手(版本3.3.9-,因为Wole Project正在使用它(。我遇到了一个问题,现在正在寻找解决方案。

我想做一个多线程 wt :: http :: client 。从文档中,我可以使用 wt :: WioService 带有设定的线程计数可以做到need,但是我面临识别问题,这些问题与处理的响应匹配。

使用WT :: WioService的多线程。

  Wt::WIOService io_service;
  io_service.setThreadCount(10);
  io_service.start();
  //
  MyClass my_http_client(io_service);
  my_http_client.Work();
  //
  io_service.stop();

在工作((中有一个循环阅读请求的队列并发送它们。

对于单线线,我正在使用下一个代码:

在类构造函数中,从 wt :: http :: client

  done().connect(boost::bind(&MyClass::HandleHttpResponse, this, _1, _2));

处理方法:

void MyClass::HandleHttpResponse(boost::system::error_code err, const Wt::Http::Message response) {
  std::unique_lock<std::mutex> lock(mutex_);
  // response to inner format
  // then all data goes to another class.
}

但是,当我使用多线程时,我需要与响应完全匹配请求。我在理解WT文档时可能是错误的。您能帮我解决这个问题吗?

Wt::Http::Client的预期用途是为每个请求创建一个新实例。