Tôi thực hiện yêu cầu không đồng bộ cho một số máy chủ bằng cách xóa http khách hàng sử dụng http:request(get, {Url, []}, [], [{sync, false}, {stream, self}])
, trong đó Url
là url của máy chủ. Tất cả đều ổn và dữ liệu được nhận bởi handle_info
trong gen_server của quá trình gọi http:request/4
. Nhưng tôi sẽ nhận được thông báo khi kết nối bị hỏng và stream_end
tin nhắn không có. Sử dụng thời gian chờ không thể sử dụng được cho tôi, bởi vì máy chủ có thể phản hồi thời gian dài.Erlang. Yêu cầu http không đồng bộ. Làm thế nào để biết khi nào kết nối bị hỏng?
Có thể nhận được thông báo về kết nối bị hỏng trong handle_info
không? Nếu không, vui lòng đề xuất cách để biết khi nào kết nối bị hỏng?
Cảm ơn bạn đã trả lời. Tôi đã cố gắng sử dụng ibrowse trước đây. Nhưng, có vẻ như, có gì đó không ổn. Tôi đang viết ứng dụng khách cho API phát trực tuyến twitter và khi tôi sử dụng ibrowse tôi không nhận được gì, ví dụ: http://pastebin.com/fJNELWJE. Khi tôi sử dụng http khách hàng erlang, tất cả các công trình. I E. nhiều tin nhắn đã có. –
Ví dụ của bạn hoạt động ở đây, để ghi lại. –
khi nào tôi có thể nhận tin nhắn từ twitter? .. vì tôi chắc chắn họ gửi tin nhắn sau khi kết nối. –