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

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

為什么不調用 android 端的 socket.io 偵聽器?

為什么不調用 android 端的 socket.io 偵聽器?

鴻蒙傳說 2023-06-15 15:40:40
我為用戶身份驗證編寫套接字中間件,但我不知道我的問題是什么!在 android 端“未經授權”事件未調用。服務器端 :async function (socket, next) {        if (socket.handshake.query && socket.handshake.query.token) {        jwt.verify(socket.handshake.query.token, process.env.SECRET_JWT_KEY, function (err, decoded) {            if (err) {                socket.emit( "unauthorized",  "unauthorized user") <==send to sender you'r authentication is failed                 console.log("Query: ", "unauthorized");    <==This line is lunched                return next(new Error('Authentication error'));            }            socket.decoded = decoded;            next();        });    } else {        next(new Error('Authentication error'));    }客戶端 :   val socket = IO.socket("http://192.168.1.6:3000", IO.Options().apply {                path = "/sockets/chat"                query = "token=wrongtoken"            })  socket.on("unauthorized", object : Emitter.Listener { <== THIS NOT LUNCED!!                override fun call(vararg args: Any?) {                  println("user authentication failed" )                }            }
查看完整描述

2 回答

?
qq_遁去的一_1

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

終于找到了解決方案,在拋出錯誤時無需從中間件發出,您可以在 Android 客戶端中獲取預定義事件,如下所示:

socket.on(Socket.EVENT_ERROR) { args -> println(args.contentToString()) }


查看完整回答
反對 回復 2023-06-15
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

我認為您需要先通過在 apply 塊中調用這一行來連接到套接字

this.connect()


查看完整回答
反對 回復 2023-06-15
  • 2 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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