bethebest0622
bethebest0622
>  可以加个vx聊聊吗
> 目前drogon里的HttpClient,一个对象管理一个连接,断线会自动重连,请求结果在回调中返回不会阻塞当前进程,但是,该客户端是Http1.1标准,这意味着如果你一次发出多个请求,这些请求会先后到达服务端,可能不是你所说的复用。 我们有个PR实现了Http2的客户端,可以真正在一个TCP连接上同时收发多个请求和回复。但还没有合并,你可以先试试,如下: #1554 感谢您回复,我的意思是每次调用client的时候,我希望知道该次调用是否重连(糟糕情况)或者是直接复用上次的连接成功(理想情况)。 因为重连的延迟对我来说要尽量避免,我会采取向服务端定时发送心跳的方式尽量维持这个连接不断。 另外,如果我创建一个httpclient池,里面的client host是一样的,drogon是会只创建一个连接吗? 我发现我现在使用EventLoopThreadPool GetNextLoop创建10个httpclient,并行处理10个http请求,他们立刻返回,但是回调函数收到数据据的延迟似乎是串行的,例如:(单位是微秒) 请求1调用send_request返回时间是0, 回调处理时间是30000 请求2调用send_request返回时间是10, 回调处理时间是60000 请求3调用send_request返回时间是20, 回调处理时间是90000 .。。。。 这个和我想要的并行请求似乎不符合,我希望,每个请求触发回调的时间都是30000 希望您赐教
https://github.com/bethebest0622/http_client 请看这个仓库,我的用法是每次 创建一个HttpClient对象h 然后 h.Post(回调函数,其他http参数),万分感谢 主代码在lib_src/src/curl_tools.cpp里面
只需要看HttpClient的构造函数 和 async_execute这两个函数
> 没有你说的文件啊,master分支吗 https://github.com/bethebest0622/http_client/blob/master/lib_src/src/curl_util.cpp 请看这里
不是,服务端是 huobi 一个交易所服务器
好的,另外,我调用send_request的时候可以知道 本次请求有没有重连吗
> Thanks a lot for your report! > > I've failed to reproduce this problem myself, so can I ask you to provide us with more details on how to...
I am afraid that i can't reproduce it with another public ip. it happened only in my private host ip, it's a http url
> 你用什么库发送http 请求啊? 如果是beast 我觉得你可以直接使用异步接口, 这里的issue 应该不会有回复的... @nqf 用的libcurl,就是想异步调用,对性能延迟比较敏感,我看看beast