无法与 iPhone 交谈,因为我对网络堆栈的技术细节知之甚少,但对于 BlackBerry,来自浏览器的 HTTP 请求的处理方式通常与应用程序发起的请求不同。作为解决方案的 BlackBerry 不仅包含设备端 TCP/HTTP 堆栈,还包含 BlackBerry 服务,其中包括(取决于您是否是企业)托管移动数据服务 (BES/MDS) 的 BlackBerry Enterprise Server您的企业网络或 Research In Motion 托管的 BlackBerry Internet Services (BIS) 服务器,该服务器代理来自移动浏览器的所有连接。这些服务器可以做很多事情,包括处理 cookie、身份验证和内容转码的某些方面,以使内容更容易被移动设备(图像等)消费。
无论如何,这也意味着您期望从正常 TCP/HTTP 连接获得的许多功能实际上发生在设备之外,因此可以由运营商或企业或 RIM 控制。准系统套接字是不同的,因为中间的各种服务器不能对 TCP 套接字做出尽可能多的假设,因为它们可以对 HTTP 连接做出尽可能多的假设,因此它们无法处理您的 HTTP 请求。由于这个原因,许多黑莓应用程序实际上最终在套接字层之上编写了自己的 HTTP 客户端,所以如果你必须执行 HTTP 长轮询(彗星?)之类的事情,一定要把它写在套接字连接之上,不是内置的 HTTP 连接。