Coder Social home page Coder Social logo

http_client如何取消请求 about cinatra HOT 8 CLOSED

famik avatar famik commented on September 3, 2024
http_client如何取消请求

from cinatra.

Comments (8)

qicosmos avatar qicosmos commented on September 3, 2024

析构http_client就可以close了,目前是用RAII去close的。

from cinatra.

famik avatar famik commented on September 3, 2024

析构http_client就可以close了,目前是用RAII去close的。

问题是 http_client 在请求结束之前是不会析构的,因为没办法减少 shared_ptr 引用计数

from cinatra.

qicosmos avatar qicosmos commented on September 3, 2024

用智能指针创建client,设置它为null来析构client

from cinatra.

famik avatar famik commented on September 3, 2024

用智能指针创建client,设置它为null来析构client

智能指针必须是shared_ptr,因为用了enable_shared_from_this,异步请求时lambda会捕获shared_from_this,是没办法将lambda捕获的智能指针设置为null的,引用计数不减少是不会析构的

from cinatra.

qicosmos avatar qicosmos commented on September 3, 2024

OK, 我把close放出来

from cinatra.

qicosmos avatar qicosmos commented on September 3, 2024

close放出来也没有效果,因为即使在连接之前关闭socket,仍然会连接成功,数据发送和接收都成功,一个办法是在读成功之后如果判断socket 是否已经close了,如果close了,就丢弃数据并退出client?这个是否满足你的需求?

from cinatra.

qicosmos avatar qicosmos commented on September 3, 2024

代码已经更新了,close是public的,你可以测一下

from cinatra.

famik avatar famik commented on September 3, 2024

代码已经更新了,close是public的,你可以测一下

可以了,非常感谢

from cinatra.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.