我正在使用MQTT协议编写iOS聊天应用程序,并且正在使用https://github.com/flightonary/Moscapsule连接到代理服务。
现在,我遇到了延迟问题,并且正如我所调查的那样,这是由于Nagle的算法和延迟ACK(在http://www.stuartcheshire.org/papers/nagledelayedack/中进行了描述)引起的。
直到现在,我可以通过设置TCP_NODELAY选项来禁用Nagle的算法。但是,我无法设置TCP_QUICKACK选项,编译器抱怨“ 使用未声明的标识符'TCP_QUICKACK'”,并且我不知道该如何解决。
有人可以帮忙吗?
答案 0 :(得分:0)
不幸的是,TCP_QUICKACK不适用于iOS。
https://forums.developer.apple.com/thread/116340
TCP_QUICKACK在iOS上不可用。如果您希望将来增加这种支持,建议您提交enhancement request描述您的要求。
P.S.:BSD套接字被认为是iOS上的兼容性API,我们鼓励人们使用Network框架进行低级联网。像这样的增强功能很可能会出现在此处,然后仅在绝对必要时才将其移植到BSD套接字API。
从好的方面来说,从Swift调用Network框架要好得多。