亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

高朗 socket.io 中間件

高朗 socket.io 中間件

Go
偶然的你 2022-08-24 10:48:03
是否有用于事件處理程序的中間件的實現?socket.iohttps://github.com/googollee/go-socket.io例如io.OnEvent("/", "myEvent", myMiddleware(func(con socketio.Conn) {  /* my code */}))
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

這實際上取決于您想用這種中間件做什么。


您始終可以編寫一個“介于”另一個函數和實際處理程序之間的函數,該函數可以按照您建議的方式使用:


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


查看完整回答
反對 回復 2022-08-24
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

您可以使用此模塊 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)

  }

})


查看完整回答
反對 回復 2022-08-24
  • 2 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號