2011-01-07 16 views
5

Bazı sunucuya erlang http client aracılığıyla http:request(get, {Url, []}, [], [{sync, false}, {stream, self}]) kullanarak eşzamansız bir istekte bulunuyorum, burada Url sunucunun URL'sidir. Hepsi tamam ve veri http:request/4 çağrı sürecinin gen_server içinde handle_info tarafından alınıyor. Bağlantı koptuğunda ileti almalıyım ve stream_end mesajı alınamıyor. Zaman aşımı kullanmak benim için uygun değildir, çünkü sunucu uzun süre yanıt verebilir.Erlang. Eşzamansız http isteği. Bağlantı koptuğunda nasıl bilinir?

handle_info'de bozuk bağlantı ile ilgili mesaj almak mümkün mü? değilse, lütfen bağlantının ne zaman bozulduğunu bilmenizi öneririz.

cevap

6

HTTP isteklerinin daha ağır kaldırma için ibrowse kullanın:

https://github.com/cmullaparthi/ibrowse

Bu büküm ve istekleri için çevirmek için çok daha fazla düğmeleri vardır ve daha tam w.r.t. olduğunu birçok şey. Http/httpc probleminizi çözmezse, ibrowse gidecekse araştırmaya değer.

+0

Cevabınız için teşekkürler. Daha önce ibrowse kullanmayı denedim. Ama öyle görünüyor ki, bir şeyler ters gidiyor. İstemci akışı yürütme API'sı için istemci gönderiyorum ve bump'u kullandığımda, hiçbir şey alamıyorum, örneğin - http://pastebin.com/fJNELWJE. Erlang http istemcisini kullandığımda tüm işler. Yani birçok mesaj var. –

+0

Örneğiniz kayıt için burada çalışıyor. –

+0

Twitter'dan nasıl mesaj gönderebilirim? .. çünkü bağlantıdan sonra gönderdiğinden eminim. –