-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Coroutine\Http\Client isConnected() 建議 #2184
Comments
不可取, 为什么不用PHP代码实现? 这是异步时代的残留物, 协程和同步客户端是表现一致的. |
@twose 因為isConnected的使用時機大都是從Pool撈起來,在使用前進行狀態確認使用, 當然,如果認為這可用來輔助Check的殘留物是不好的,那我也沒意見 |
我忘了提http client是自动连接的(误以为是client), 开发者不需要感知是否连接, 这个没有意义, 就像使用curl的时候你不需要去关心连接. |
你是指连接断开之后的下一次请求会失败吗? |
是的,此時所回傳的errorCode為 -3 (這部分isConnected是無法偵測到) (When keep-alive is true) |
@s890510 协程改造以后其表现和同步完全一致, 所以没有监测到连接断开事件, 这里需要额外处理, 底层应该自动进行重连, 连接不是客户端需要关心的事. 感谢详细的反馈, 我差点错过了这个问题 |
提供可簡單複現的code
Response:
|
是的 在长连接处理上出现了向下不兼容情况 |
最近又發現... 雖然已經先透過ping()做一次確認了, |
@s890510 更新到4.2.10, http 和 redis 底层都增加了keep_liveness, 会在请求前主动侦测连接是否被close. 注: isConnect作为一个没有在文档中声明且不符合设计的调试API已被删除 |
目前測試看起來沒有問題! Thanks! |
最近在調整ConnectionPool,有發現到如果Server端終止連線後,Client端會不清楚
因此能否在 isConnected 加上
來做輔助判斷呢?
The text was updated successfully, but these errors were encountered: