出现错误时如何关闭websockethandle

How can I close a websockethandle when it has an error

func WsConnectionHandle(ctx *gin.Context){
    ws, err := upgrader.Upgrade(ctx.Writer, ctx.Request, nil)
    if err != nil{
        config.Error.Println("connect err", err.Error())
        //config.Error.Fatalln("connect err")
        ctx.Abort() 
    }
    ...

当我使用ctx.Abort()时还是运行下面的代码,如果我使用Fatalln,我的主进程就会停止~

这是我的路由器

gin.SetMode(gin.ReleaseMode)
route := gin.Default()
resource.User(route.Group("/api/user"))
resource.KingAngAngle(route.Group("/api/king-and-angle", resource.JWTAuth()))
resource.Blessing(route.Group("/api/blessing", resource.JWTAuth()))
route.GET("/ws", chat.WsConnectionHandle)

嗯,ctx.Abort()是一个函数调用,仅此而已。它不会影响调用它的函数的 flow/scope。如果你不想在调用ctx.Abort()后执行任何事情,那么只需return退出函数:

if err != nil {
    log.Printf("some error: %+v", err)
    ctx.Abort()
    return // exit function
}