web client连接server,每次都多出来一个链接,close_wait状态,服务端应该已经主动断开了。拥有client链接的函数已经结束,应该自动关闭socket才对,而且client里也没找到手动关闭的方法。等连接数涨到1000多的时候接无法连接服务器了。
1
共 7 条评论, 1 页
web client连接server,每次都多出来一个链接,close_wait状态,服务端应该已经主动断开了。拥有client链接的函数已经结束,应该自动关闭socket才对,而且client里也没找到手动关闭的方法。等连接数涨到1000多的时候接无法连接服务器了。
评论区
写评论改用全局的web client实例解决了连接不关闭问题。但是有个新的致命问题,就是一但网络掉线再恢复,后续使用的连接请求都没有反应,产生超时错误,感觉有点像事件循环停止了。研究了很久,还是不知道怎么处理这种情况,没找到错误处理与恢复的方法
isahc,你值得拥有。
换request 或者 hyper库吧, 这框架文档写得也太少了 官网就个hello world的例子 简直没法看。
换别的试试, 比如reqwest
我是每个请求新建一个webclient,猜想这样可能有问题,难道说要全局用一个实例?可是没找到这方面文档
肯定没有循环引用。试过调用drop也没用 对以下内容的回复:
没用过 actix. 不过基于对 rust的理解, rust的对象只要被drop了 资源就会回收,所以你的web client对象是不是一直没被drop,是不是有共享引用呢,不知道这么理解对不对。