我正在使用cURL连接到名为Gnip的公司管理的服务器。 (www.gnip.com) 最终我们想要无限期地使用管道json feed。使用curl和php保持与管道的活动连接
最初当我安装我们的软件时,有一个很好的小类用于维护连接;它是通过gnip通过社交活动提供的。
Gnip改变了他们要求完成连接的方式,以至于班级破裂。
我可以连接到服务器就好了。有时它会保持开放几天,有时连接会在几秒钟内死亡。
一切应该工作的方式是:我连接到gnip并保持一个打开的连接。 gnip将数据作为json字符串直接发送给我(因为他们收到它)。如果在30秒内没有发送数据,他们会发送一个“保持活动”信号,让我的脚本知道它仍然处于连接状态。
理想情况下,脚本只会在两台服务器中的一台关闭时断开连接。我已经通过cronjob处理了我的结论。
问题是连接有时会意外关闭。我联系了gnip,他们的日志说,断开连接不是他们的错。
这一切都超出了我的正常境界。我确定curl发送了某种错误,但我不知道如何找到它以记录它。
这是迄今为止我所编写的代码的副本:http://pastebin.com/jpHzvbTF
我喜欢直接“这里是你如何解决它”,但我也很想知道一些术语阅读起来这可能会导致我自己的解决方案。
我读过Keep-alive in curl/php,但是我发现它与建议的时间没有关系。
这是一个美好的回答!谢谢。我们通过说服老板说团队拥有更多的Python体验,并且需要将我们的整个平台从php更改为python,从而解决了我们的麻烦。我会鼓励任何寻找类似解决方案的人遵循此建议。我们基本上在fuerve的团队在Java中做了同样的事情。我相信它通常主要适用于HTTP请求。 – Jake 2012-07-09 04:35:07