我正在使用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