异步Wt :: Http :: Client响应和请求匹配

时间:2018-03-28 12:30:41

标签: c++ http asynchronous client wt

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

我想创建一个多线程的 Wt :: Http :: Client 。从文档我已经知道使用带有设置线程数的 Wt :: WIOService 可以做到中性,但我遇到了识别问题,哪个请求与处理的响应相匹配

使用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();

在Work()中有一个循环,它读取请求队列并发送它们。

对于单线程我正在使用下一段代码:

在从 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 documentation时可能是错的。 你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

function Controller() { error_reporting(E_ALL); parent::__construct(); } 的用途是为每个请求创建一个新实例。