我正在编写一组 Web 服务,其中一个需要实现服务器推送。
客户端将是本机 Objective-C。我希望它尽可能简单、快速和轻量级。传输的数据将是 JSON。是否可以在不使用消息代理的情况下做到这一点?
我正在编写一组 Web 服务,其中一个需要实现服务器推送。
客户端将是本机 Objective-C。我希望它尽可能简单、快速和轻量级。传输的数据将是 JSON。是否可以在不使用消息代理的情况下做到这一点?
有一种称为COMET的 HTTP 技术,在该技术中,客户端启动一个线程,该线程向 HTTP 服务器发出一个可能存在很长时间的请求。每当服务器想向客户端发送一些东西时,它都会发送对此请求的响应。客户端处理此响应并立即向服务器发出另一个长期请求。通过这种方式,服务器可以在客户端的主执行线程中发生其他事情时发送信息。服务发送的信息可以是您喜欢的任何格式。(事实上,对于在 Web 浏览器中使用 Javascript 库执行 COMET 的客户端,JSON 是完美的。)
@DevDevDev:COMET 确实经常与支持 Javascript 的浏览器相关联,但我认为不必如此。您可以查看iStreamLight,它是一个用于 iPhone 的 Objective-C 客户端,用于连接 COMET 服务器。在与作者的这次采访中也讨论了这一点。