高朗 socket.io 中间件


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


https://github.com/googollee/go-socket.io


例如


io.OnEvent("/", "myEvent", myMiddleware(func(con socketio.Conn) {

  /* my code */

}))


偶然的你
浏览 110回答 2
2回答

慕的地8271018

这实际上取决于您想用这种中间件做什么。您始终可以编写一个“介于”另一个函数和实际处理程序之间的函数,该函数可以按照您建议的方式使用: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 }))当收到时,这将首先运行中间件(打印“中间件!”),然后运行包装函数(因为在中间件中调用)。myEventnext

哔哔one

您可以使用此模块 https://github.com/fakundo/go-middleware事件处理程序:io.OnEvent("/", "some-event", requireAuth(func(s socketio.Conn) {  // some event handler code}))中间件:var requireAuth = middleware.Create(func(s socketio.Conn, next func()) {  if authorized(s) {    next()  } else {    s.emit("error", AuthError)  }})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go