golang/gin 中是否有关闭客户端请求的方法?

Is there anyway to close client request in golang/gin?

使用 gin 框架。

有没有办法通知客户端关闭请求连接,然后服务器处理程序可以在不让客户端等待连接的情况下执行任何后台作业?

func Test(c *gin.Context) {
        c.String(200, "ok")
        // close client request, then do some jobs, for example sync data with remote server.
        //
}

是的,你可以做到。通过简单地从处理程序返回。而你想做的后台工作,你应该把它放在一个新的 goroutine 上。

请注意,连接 and/or 请求可能会放回池中,但这无关紧要,客户端会看到请求服务已结束。你实现你想要的。

像这样:

func Test(c *gin.Context) {
    c.String(200, "ok")
    // By returning from this function, response will be sent to the client
    // and the connection to the client will be closed

    // Started goroutine will live on, of course:
    go func() {
       // This function will continue to execute... 
    }()
}

另见: