2016-08-02 5 views
-4

コールバックやcURLのような何らかの条件で、オーディオやビデオストリームなどのリクエストを実行する方法を停止するにはどうすればよいですか?HTTPClientで作成された実行リクエストを停止する方法

+2

http://stackoverflow.com/questions/の可能性の重複6807590/how-to-stop-a-goroutine。また、この記事を読んでください:https://blog.golang.org/pipelines –

+2

重複/関連する可能性もあります:1. [Goでブロック操作をキャンセルする](http://stackoverflow.com/questions/28240133/cancela-a-ブロッキング動作中)。 2. [httpハンドラ内のゴルーチンの実行](http://stackoverflow.com/questions/31116870/goroutine-execution-inside-an-http-handler); 3. [golang/ginでクライアントのリクエストを閉じるためにとにかくあるのですか?](http://stackoverflow.com/questions/32470792/is-there-anyway-to-close-client-request-in-golang-gin) – icza

答えて

1

あなたが探しているものはcontext packageと信じています。 golang.orgには、それを使用する方法を説明する良いブログ記事がありますhere

要点は、コンテキストオブジェクトを作成し、それをストリーミングを実行しているあなたのゴルーチンに渡すことです。呼び出し元のゴルーチンでは、コンテキストをキャンセルしたり、タイムアウトを設定することができます。ストリーミング・ゴルーチンでは、context.Done()をチェックし、それに応じて行動する必要があります。アクションが実際にあなたがキャンセルしたいhttpリクエストである場合、あなたはtransport levelでそれを行うことができます

(あなたがcontext.Done()にメッセージを取得する)

関連する問題