我有一个 Web 客户端和一个 Go 服务器。客户端发送一些 json 数据,这些数据经过处理,然后服务器返回一个 json 响应。
但是当我想通知客户一个非常慢的过程的结果,甚至允许客户停止这个过程时,我该怎么办呢?
我一直在想,也许我可以每 5-10 秒发送一次新的更新请求,但这似乎效率不高,而且它不允许我停止我开始使用 go 的进程mySlowFunc()
最佳答案
您可以为慢速函数创建一些“守卫”。他们限制执行时间,函数在这段时间内成功返回结果,如果没有 - 返回默认值并取消函数。
代码示例:
select {
case result := <-successChan:
return result, nil
case <-timeoutChan:
return "", nil
}
关于go - 向客户端发送多个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47873964/