gpt4 book ai didi

iphone - 当套接字可用时使用 HTTP 长轮询(例如 iPhone、Blackberry)

转载 作者:行者123 更新时间:2023-12-03 18:47:41 24 4
gpt4 key购买 nike

我目前正在服务器和 Web/iPhone/Blackberry 客户端上使用 Node.js 编写一个简单的跨平台应用程序。带宽和延迟要求与您在 IRC“派对游戏”或任何聊天系统中看到的类似。我使用 HTTP 长轮询(双向使用 JSON)开发了 Web 客户端。

对于 iPhone/blackberry,我可以使用内置的 HTTP 库与我当前的实现进行对话,或者我可以在服务器上编写一个套接字监听器并使用套接字与其进行对话。这样做有什么好处吗?为什么非浏览器 HTTP 客户端似乎不受欢迎?

最佳答案

无法与 iPhone 对话,因为我对网络堆栈的技术细节了解不够,但对于 BlackBerry,来自浏览器的 HTTP 请求的处理方式通常与应用程序发起的请求不同。 BlackBerry 作为一种解决方案,不仅包含设备端 TCP/HTTP 堆栈,还包含 BlackBerry 服务,其中包括(取决于您是否是企业)带有移动数据服务 (BES/MDS) 的 BlackBerry Enterprise Server,托管在您的企业网络或 Research In Motion 托管的 BlackBerry Internet Services (BIS) 服务器,该服务器代理来自移动浏览器的所有连接。这些服务器可以做很多事情,包括处理 cookie、身份验证和内容转码的某些方面,以使移动设备更容易使用内容(图像等)。对于 BES/MDS,它们甚至可以充当 HTTPS 连接中的安全端点。

无论如何,这也意味着您期望从正常 TCP/HTTP 连接获得的许多功能实际上是在设备外发生的,因此可以由运营商、企业或 RIM 控制。简单的套接字是不同的,因为中间的各种服务器不能像对 HTTP 连接那样对 TCP 套接字做出尽可能多的假设,因此它们不能干扰您的 HTTP 请求。出于这个原因,许多 BlackBerry 应用程序实际上最终会在套接字层之上编写自己的 HTTP 客户端,因此,如果您必须执行类似 HTTP 长轮询(Comet?)之类的操作,那么一定要将其编写在套接字连接之上,不是内置的 HTTP 连接。

关于iphone - 当套接字可用时使用 HTTP 长轮询(例如 iPhone、Blackberry),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3490873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com