我有两台服务器(家用和远程)以及iPhone上的程序。 iPhone需要保持端口打开,直到整个过程完成,否则整个系统将失败。
因此,iPhone从“家庭”服务器(通过帖子)获取一串数据,向其添加一些内容,并通过端口流连接到“远程”服务器。打开端口并将数据发送到“远程”后,它会从远程获取响应并将其转发到“home”。一旦“家”获得它,它会改变一些东西并将其发送回iPhone,后者需要通过相同的,仍然打开的端口将信息转发到“远程”。
我无法关闭端口流并将其重新打开,因为“远程”服务器上的内容会发生变化并破坏整个过程。
这是一张快速图片。谢谢,MS Paint。
提前致谢, 詹姆斯
答案 0 :(得分:1)
如果您同时控制本地和远程服务器,则可以确保使用HTTP 1.1并且连接使用“Keep-Alive”标头。
一种技术也可以帮助XMMP binding模拟长期双向连接的语义。
如果您无法控制服务器,那么我担心您有点自己,因为Keep-Alive是为了支持持久或长期连接而正确引入的。
在这种情况下,我认为保持连接打开的唯一选择是某种轮询,即当iPhone等待来自一台服务器的响应时,它会每隔n向另一台服务器发送一个请求。秒,低于服务器连接超时。
只有在发送响应后服务器没有立即关闭连接时,此方法才有效。