我正在使用 cURL 连接到由 Gnip 公司管理的服务器。(www.gnip.com) 最终我们希望无限期地使用管道 json 提要。
最初,当我设置我们的软件时,编写了一个很好的小类来维护连接;它是通过 gnip 从社交网络提供的。
Gnip 改变了他们要求完成连接的方式,因此课程中断了。
我可以很好地连接到服务器。有时它会保持打开状态数天,有时连接会在几秒钟内断开。
一切应该工作的方式是:我连接到 gnip 并保持一个开放的连接。gnip 将数据作为 json 字符串实时发送给我(当他们收到时)。如果在 30 秒内没有发送任何数据,他们会发送一个“保持活动”信号,让我的脚本知道它仍然处于连接状态。
理想情况下,脚本只会在两台服务器之一关闭时断开连接。我已经通过 cronjob 处理了这个问题。
问题是连接有时会意外关闭。我联系了 gnip,他们的日志说断开连接不是他们的错。
这一切都超出了我的正常范围。我确定 curl 正在发送某种错误,但我不知道如何找到它以记录它。
这是我到目前为止编写的代码的副本:http: //pastebin.com/jpHzvbTF
我喜欢直接的“这是你解决它的方法”,但我也很想知道一些要阅读的术语,这可能会导致我找到自己的解决方案。
我已经阅读了 curl / php 中的 Keep-alive,但我发现它与建议的时间并不相关。