不久,我们的项目使用 Thrift 服务器和具有多路复用功能的移动客户端。
我在开发iOS客户端的时候遇到了一个奇怪的问题;
当我第一次创建客户端并进行调用时,一切正常并且按预期工作。
由于 Cocoa Thrift 客户端没有关闭方法,我希望 ARC 会处理它。
一段时间后,我为同一服务创建了另一个客户端并执行相同的操作,但这一次,当我进行服务调用时,客户端挂起并在一段时间后抛出“'TTransportException',原因:'Cannot阅读。远程端已关闭。'”。
在服务端,操作成功完成并返回值。
有人知道我做错了什么吗?
提前致谢!
最佳答案
阅读您的问题,我记得我们在非常不同的环境中遇到了一个非常相似的问题。如果 ARC 照顾您的客户端并关闭连接,尤其是端口,这可能就是为什么使用相同端口再次重新创建客户端是问题的根源。关闭后不久打开同一个端口可能需要很长时间(几分钟),具体取决于超时时间。
抱歉,您的问题没有真正的答案,但也许需要寻找提示。
关于ios - 在 iOS 中重新创建 Thrift 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27228388/