2011-01-07 1 views
5

erlang httpクライアント によって一部のサーバーに非同期要求を行います。http:request(get, {Url, []}, [], [{sync, false}, {stream, self}])を使用しています。ここでUrlはサーバーのURLです。すべてがOKで、http:request/4というプロセスのgen_serverには handle_infoというデータがあります。 しかし、接続が壊れたときにメッセージを受け取るべきであり、stream_endメッセージ が見つかりません。サーバが に長時間応答できるので、タイムアウトを使用することはできません。Erlang。非同期http要求です。接続が壊れたときを知る方法?

壊れた接続についてのメッセージを受け取ることは可能ですかhandle_info? ではない場合は、接続が切断されたときを知る方法を提案してください。

答えて

6

HTTPリクエストのよりヘビーデューティーリフティングのために、ibrowse使用:

https://github.com/cmullaparthi/ibrowse

それはねじれや要求のために有効にするより多くのノブを持っており、より完全なw.r.t.です多くのもの。 http/httpcで問題が解決しない場合は、ibrowseに行くかどうか調べる価値があります。

+0

回答ありがとうございます。私は前にibrowseを使用しようとしました。しかし、何かが間違っているようです。 私はtwitterストリーミングAPIのクライアントを書いています。私はibrowseを使うと何も得られません。例えば、 http://pastebin.com/fJNELWJE。 erlang httpクライアントを使用すると、すべて動作します。私。多くのメッセージがあります。 –

+0

あなたの例は、ここではレコードのために働いています。 –

+0

どうすればTwitterからメッセージを受け取ることができますか?接続後に送信すると確信しています。 –

関連する問題