Golang socket.io中间件

Golang socket.io中间件,go,socket.io,Go,Socket.io,是否有socket.io事件处理程序的中间件实现 比如说, io.OnEvent(“/”,“myEvent”,myMiddleware(func(con socketio.con){ /*我的代码*/ })) 这实际上取决于您想用这种中间件做什么 您始终可以编写一个介于另一个函数和实际处理程序之间的函数,该函数可以按照您建议的方式使用: func myMiddleware(next func(socketio.Conn) error) func(socketio.Conn) error {

是否有
socket.io
事件处理程序的中间件实现

比如说,

io.OnEvent(“/”,“myEvent”,myMiddleware(func(con socketio.con){
/*我的代码*/
}))

这实际上取决于您想用这种中间件做什么

您始终可以编写一个介于另一个函数和实际处理程序之间的函数,该函数可以按照您建议的方式使用:

func myMiddleware(next func(socketio.Conn) error) func(socketio.Conn) error {
    return func(conn socketio.Conn) error {
        
        // Do some kind of logic in the middleware...
        fmt.Println("Middleware!")
        
        // Now we call the actual function
        return next(conn)       
    }
}
然后可以按照您的意愿使用,例如:

io.OnEvent("/", "myEvent", myMiddleware(func(con socketio.Conn) error {
    fmt.Println("Handler func!")
    return nil 
}))
当收到
myEvent
时,这将首先运行中间件(打印“middleware!”),然后运行包装函数(因为在中间件中调用了
next
)。

您可以使用此模块

事件处理程序:

io.OnEvent(“/”,“某些事件”,requireAuth(func(s socketio.Conn){
//一些事件处理程序代码
}))
中间件:

var requireAuth=middleware.Create(func(s socketio.Conn,next func()){
如获授权{
下一个()
}否则{
s、 发出(“错误”,AuthError)
}
})