出现错误时如何关闭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
}
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
}