当前位置: 首页 > 面试题库 >

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

薛滨海
2023-03-14
问题内容

使用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.
        //
}

问题答案:

是的,你可以这样做。只需从处理程序中返回即可。而您要执行的后台作业,则应将其放在新的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... 
    }()
}


 类似资料:
  • 这是原样代码。 我用假客户机修改了代码。像这样。 从功能上来说,没有问题。 有人帮忙吗,拜托。谢谢!

  • 我启动一个客户端来连接远程服务器。这涉及到大量的计算。则客户端意外断开连接。然而,客户端的计算仍然在远程服务器上运行。有办法关闭它吗?

  • 问题内容: 该测试程序连接到https服务器并获取一些内容。我已经在浏览器中使用curl检查了服务器,并且证书运行正常。如果我运行curl从服务器上获取数据,它会正确地抱怨证书未知,除非我使用 –cacert传递它,或者使用-k关闭安全性。 所以我遇到的问题是,尽管我认为我的客户应该进行证书身份验证,并且告诉它公共证书在哪里,但是它始终可以工作。如果我删除了ca:选项,以至于它不知道服务器上的证书

  • 客户端的HTTP/HTTPS请求。 进程:主进程​ ClientRequest是由EventEmitter来实现Writable Stream​ new ClientRequest(options) 作用:发起新的HTTP/HTTPS请求 options(Object | String) - options是String时即请求URL。 options 是Object时则按以下属性请求: meth

  • 我使用Jersey客户端从Java代码进行REST调用: 在我的GET请求中, 调用后,客户端将自动关闭。 如果我用, 我得到了同样的结果。 在这种情况下,连接是自动关闭还是需要手动关闭?

  • 当我尝试access/oauth/token时,我得到了错误: O.S.S.O.Provider.Endpoint.TokenEndpoint:处理错误:NoSuchClientException,没有请求ID:username的客户端 null