【发布时间】:2016-08-03 02:26:21
【问题描述】:
如何通过回调或类似 cURL 中的类似条件来停止执行例如音频或视频流的请求?
【问题讨论】:
标签: multithreading http go
如何通过回调或类似 cURL 中的类似条件来停止执行例如音频或视频流的请求?
【问题讨论】:
标签: multithreading http go
我相信您正在寻找的是context package。 golang.org 上有一篇很好的博客文章解释了如何使用它here。
它的要点是,您创建一个上下文对象,并将其传递给执行流式传输的 goroutine。在您的调用者 goroutine 中,您可以取消上下文或设置超时。在流式 goroutine 中,您必须检查 context.Done() 并采取相应措施。
如果该操作实际上是您要取消的 http 请求,您可以在 transport level 处执行(当您在 context.Done() 上收到消息时)
【讨论】: