ios - 在 iOS 中重新创建 Thrift 客户端

标签 ios objective-c cocoa thrift

不久,我们的项目使用 Thrift 服务器和具有多路复用功能的移动客户端。

我在开发iOS客户端的时候遇到了一个奇怪的问题;

当我第一次创建客户端并进行调用时,一切正常并且按预期工作。

由于 Cocoa Thrift 客户端没有关闭方法,我希望 ARC 会处理它。

一段时间后,我为同一服务创建了另一个客户端并执行相同的操作,但这一次,当我进行服务调用时,客户端挂起并在一段时间后抛出“'TTransportException',原因:'Cannot阅读。远程端已关闭。'”。

在服务端,操作成功完成并返回值。

有人知道我做错了什么吗?

提前致谢!

最佳答案

阅读您的问题,我记得我们在非常不同的环境中遇到了一个非常相似的问题。如果 ARC 照顾您的客户端并关闭连接,尤其是端口,这可能就是为什么使用相同端口再次重新创建客户端是问题的根源。关闭后不久打开同一个端口可能需要很长时间(几分钟),具体取决于超时时间。

抱歉,您的问题没有真正的答案,但也许需要寻找提示。

关于ios - 在 iOS 中重新创建 Thrift 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27228388/

相关文章:

ios - 在标签内强制单词断字

ios - Instagram API iOS 客户端可以注销 Instagram

objective-c - 什么基本数据结构用于实现 NSOrderedSet

ios - 单点触控 : Is it possible to present DialogViewController inside of a usual UIViewController

ios - 使用 OCMock 对复杂方法进行单元测试

objective-c - Find Max Difference in Array - 需要算法解决方案优化

ios - UISegmentedControl 段顺序困惑

objective-c - 如何强制更新 Cocoa 绑定(bind)?

macos - NSView 和 NSViewController 的区别

cocoa - 第一个 Mac 应用程序 - Push viewcontroller