2011-01-07 3 views
5

나는 비동기 요청을 어떤 서버에 erlang http 클라이언트 을 사용하여 http:request(get, {Url, []}, [], [{sync, false}, {stream, self}])을 사용합니다. 여기서 Url은 서버의 url입니다. 모두 괜찮아요 http:request/4을 호출하는 프로세스의 gen_server에 handle_info에 의해 데이터가 있습니다. 하지만 연결이 끊어 졌을 때 메시지를 받아야하고 stream_end 메시지 이 없습니다. 서버가 에 오랜 시간 응답 할 수 있기 때문에 타임 아웃을 사용할 수 없습니다.얼랭. 비동기 http 요청. 연결이 끊어진시기를 아는 방법?

깨진 연결에 대한 메시지를받을 수 있습니까 handle_info? 이 아닌 경우 연결이 끊어진 경우를 알 수있는 방법을 제안하십시오.

답변

6

HTTP 요청을 더 강력 리프팅의 경우, ibrowse 사용

https://github.com/cmullaparthi/ibrowse

그것은 틀고 요청을 설정하는 더 많은 노브를 가지고 있으며,보다 완벽한 w.r.t.입니다 많은 것들. http/httpc가 문제를 해결하지 못한다면, ibrowse로 갈 것인지 조사해 볼 가치가 있습니다.

+0

답변 해 주셔서 감사합니다. 전에 ibrowse를 사용하려고했습니다. 하지만 뭔가 잘못되었다고 생각됩니다. 트위터 스트리밍 API 클라이언트를 작성 중이며 ibrowse를 사용할 때 아무 것도 얻지 못합니다 (예 : http://pastebin.com/fJNELWJE). erlang http 클라이언트를 사용하면 모든 것이 작동합니다. 나는. 많은 메시지가 있습니다. –

+0

당신의 예제가 여기에서 작동합니다. –

+0

언제 내가 트위터로부터 메시지를받을 수 있습니까? –

관련 문제