一尘不染

无论如何,在golang / gin中是否有关闭客户端请求的方法?

go

使用gin-gonic框架。

无论如何,是否有通知客户端关闭请求连接的信息,然后服务器处理程序可以执行任何后台作业,而无需让客户端等待连接?

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

阅读 1105

收藏
2020-07-02

共1个答案

一尘不染

是的,你可以这样做。只需从处理程序中返回即可。而您要执行的后台作业,则应将其放在新的goroutine中。

请注意,可以将连接和/或请求放回池中,但这无关紧要,客户端将看到为请求提供服务已结束。您实现了您想要的。

像这样:

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... 
    }()
}
2020-07-02