用于 iOS 上服务器发送事件的 webkit 的推荐替代方案

Dav*_*ico 6 webkit nsurlconnection long-polling ios server-sent-events

我想在我的本机 iOS 应用程序中接收服务器发送的事件,但我没有使用 webkit/Safari。根据我的发现, NSURLConnection 不适合,因为它会分块 response。我还查看了ZTWebSocket库(显然很好,但我正在寻找 SSE,而不是网络套接字)。将CocoaAsyncSocket才合适?还是仅限于纯 TCP Socket 通信?

我偷偷怀疑我遗漏了一些明显的东西,或者已经有一个图书馆或样本了。提前致谢。

Dav*_*ico 3

经过对此进行更多研究后,我认为在没有 WebKit 的 iOS 上实现服务器发送事件的最佳方法是使用自定义的 NSConnection/NSRequest 工具集。我选择了ASIHTTPRequest。该库允许您显式控制连接对象上的持久性属性(必需)、控制通过流接收的数据、存储响应(例如在本地文件中)等。

更不用说它在网络领域包含许多其他方便的扩展/自定义(改进的可达性观察器、简化的异步 API、排队功能,甚至加载整个网页(CSS、js 等)的能力。

在服务器端,我使用 cyclone-sse(龙卷风)和 nginx(作为反向代理)。非常令人兴奋,现在我可以看到我的 SSE 同时推送到我的 iOS 模拟器和浏览器订阅者。Cyclone 甚至处理所有连接,并为我提供了一个 API,它支持简单的 POST 消息推送(还支持 AMQP 和 Redit)...

长话短说,ASIHTTPRequest 对我来说是一个完美的解决方案。