2016-08-02 73 views
-4

如何通过某些条件(例如回调或类似的cURL操作)停止执行音频或视频流的请求?如何停止使用HTTPClient创建执行请求

+2

http://stackoverflow.com/questions/的可能的复制6807590 /如何到停止-A-够程。另外阅读这篇文章:https://blog.golang.org/pipelines –

+2

也可能重复/相关:1. [在Go中取消阻塞操作](http://stackoverflow.com/questions/28240133/cancel-a-联锁操作进行中去); 2. [在http处理程序中执行Goroutine](http://stackoverflow.com/questions/31116870/goroutine-execution-inside-an-http-handler); 3. [无论如何关闭客户端请求在golang /杜松子酒吗?](http://stackoverflow.com/questions/32470792/is-there-anyway-to-close-client-request-in-golang-gin) – icza

回答

1

我相信你要找的是context package。 golang.org上有一篇很好的博客文章,解释如何使用它here

它的要点是,你创建一个上下文对象,并将它传递给正在执行流的goroutine。在您的调用者程序中,您可以取消上下文或设置超时。在流式goroutine中,您必须检查context.Done()并采取相应措施。

如果动作实际上是要取消的HTTP请求,你可以在transport level做到这一点(当你在context.Done()消息)