1

我有两台服务器(家庭和远程)和 iPhone 上的程序。iPhone需要保持一个端口打开,直到整个过程完成,否则整个系统会失败。

因此,iPhone 从“家庭”服务器(通过 post)获取一串数据,向其中添加一些内容,然后通过端口流连接到“远程”服务器。一旦端口打开并将数据发送到“远程”,它就会从远程获得响应并将其转发到“家”。一旦“家”得到它,它就会改变一些东西并将其发送回iPhone,iPhone需要通过相同的、仍然打开的端口将信息转发到“远程”。

我无法关闭端口流并重新打开它,因为“远程”服务器上的东西会改变并破坏整个过程。

这是一张快速图片。谢谢你,油漆女士。 服务器连接

在此先感谢,詹姆斯

4

1 回答 1

1

如果您同时控制本地和远程服务器,则可以确保使用 HTTP 1.1 并且连接使用“Keep-Alive”标头。

XMMP 绑定也可以提供帮助,以模拟长期双向连接的语义。

如果您无法控制服务器,那么我担心您有点靠自己,因为 Keep-Alive 被正确地引入以支持持久或长期连接。

在这种情况下,我认为保持连接打开的唯一选择是某种轮询,即当 iPhone 等待来自一台服务器的响应时,它每 n 秒向另一台服务器发送一个请求,即n 下面的服务器连接超时。

只有当服务器在发送响应后没有立即关闭连接时,这种方法才有效。

于 2011-07-29T17:48:02.867 回答