enhancementgood first issue
Repository metrics
- Stars
- (628 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
I want to do something when closing, or interrupting the client connection, such as cleaning up. I call conn.Close() on ws.OnConnect{} without triggering ws.OnDisconnect{}. what should I do?
package main
import (
"fmt"
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/websocket"
"github.com/kataras/neffos"
)
func main() {
app := iris.Default()
ws := neffos.New(websocket.DefaultGorillaUpgrader, neffos.Namespaces{
neffos.OnNativeMessage: neffos.Events{
"login": func(ns *neffos.NSConn, msg neffos.Message) error {
return nil
},
},
})
ws.OnConnect = func(conn *neffos.Conn) error {
allowConnect = true
// some operations...
if !allowConnect {
conn.Close()
}
return nil
}
ws.OnDisconnect = func(c *neffos.Conn) {
// No shutdown signal is received and the method body is not triggered.
fmt.Println("OnDisconnect")
}
app.Get("/login", websocket.Handler(ws))
app.Logger().Fatal(app.Listen(":8080"))
}