cURL を使用して、Gnip という会社が管理するサーバーに接続しています。(www.gnip.com) 最終的には、パイプライン json フィードを無期限に消費したいと考えています。
最初にソフトウェアをセットアップしたとき、接続を維持するために書かれた素敵な小さなクラスがありました。gnip を介してソーシャルから提供されました。
Gnip は、接続を行う必要がある方法を変更したため、クラスが壊れました。
サーバーには問題なく接続できます。何日も開いたままになることもあれば、数秒で接続が切断されることもあります。
すべてが機能する方法は次のとおりです。gnipに接続し、開いた接続を維持します。gnip はデータを json 文字列としてライブで (受信時に) 送り返します。30 秒以内にデータが送信されない場合、「キープ アライブ」信号を送信して、スクリプトがまだ接続されていることを知らせます。
理想的には、スクリプトは、2 つのサーバーのうちの 1 つがシャットダウンされたときにのみ切断されます。私はcronjobを介して自分の側でそれを処理しました。
問題は、接続が予期せず終了することがあるということです。gnip に連絡したところ、ログによると、切断は彼らのせいではありません。
これは私の通常の領域外です。curl が何らかのエラーを送信していることは確かですが、ログに記録するためにエラーを見つける方法がわかりません。
ここに私がこれまでに書いたコードのコピーがあります: http://pastebin.com/jpHzvbTF
「これが修正方法です」という直接的な回答が欲しいのですが、私自身の解決策につながるかもしれないいくつかの用語を読んで知りたいです.
Keep-alive in curl / phpを読んだことがありますが、これとは関連性がないことがわかりました。