drogonframework / drogon

Drogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows
MIT License
11.04k stars 1.06k forks source link

复用tcp连接? #2067

Open bethebest0622 opened 2 weeks ago

bethebest0622 commented 2 weeks ago

你好,我的场景是 不定时的向同一服务器发送http请求

我非常在意延迟,所以我希望尽可能的复用已经创建的tcp连接

我的问题是: 在drogon执行http请求的时候 有两个对象需要创建 HttpClient和HttpRequest

那么,tcp连接是创建在HttpClient这个维度上还是HttpRequest呢?

复用同一个HttpClient,每次请求都创建一个新的HttpRequest这样会复用之前的tcp连接吗?

或者,复用HttpRequest 才可以达到复用连接的效果呢?

谢谢您不吝赐教

an-tao commented 2 weeks ago

一个httpClient对应一个TCP连接;复用它TCP就会保持,直到服务端主动关掉。

bethebest0622 @.***> 于2024年6月13日周四 18:14写道:

你好,我的场景是 不定时的向同一服务器发送http请求

我非常在意延迟,所以我希望尽可能的复用已经创建的tcp连接

我的问题是: 在drogon执行http请求的时候 有两个对象需要创建 HttpClient和HttpRequest

那么,tcp连接是创建在HttpClient这个维度上还是HttpRequest呢?

复用同一个HttpClient,每次请求都创建一个新的HttpRequest这样会复用之前的tcp连接吗?

或者,复用HttpRequest 才可以达到复用连接的效果呢?

谢谢您不吝赐教

— Reply to this email directly, view it on GitHub https://github.com/drogonframework/drogon/issues/2067, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFAHSBKFQS7OUQHKPPNE7UDZHFWJ7AVCNFSM6AAAAABJICNXZSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM2TANZVGMZDMMI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

bethebest0622 commented 2 weeks ago

一个httpClient对应一个TCP连接;复用它TCP就会保持,直到服务端主动关掉。 bethebest0622 @.> 于2024年6月13日周四 18:14写道: 你好,我的场景是 不定时的向同一服务器发送http请求 我非常在意延迟,所以我希望尽可能的复用已经创建的tcp连接 我的问题是: 在drogon执行http请求的时候 有两个对象需要创建 HttpClient和HttpRequest 那么,tcp连接是创建在HttpClient这个维度上还是HttpRequest呢? 复用同一个HttpClient,每次请求都创建一个新的HttpRequest这样会复用之前的tcp连接吗? 或者,复用HttpRequest 才可以达到复用连接的效果呢? 谢谢您不吝赐教 — Reply to this email directly, view it on GitHub <#2067>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFAHSBKFQS7OUQHKPPNE7UDZHFWJ7AVCNFSM6AAAAABJICNXZSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM2TANZVGMZDMMI . You are receiving this because you are subscribed to this thread.Message ID: @.>

服务器关闭了连接这个事件,在客户端有办法感知到吗?

an-tao commented 2 weeks ago

目前没有,断了client内部自己会重连