Javascript 为什么android端的socket.io侦听器没有被调用?
我编写了用于用户身份验证的套接字中间件,但我不知道我的问题出在哪里! 在android端“未授权”事件未调用 服务器端:Javascript 为什么android端的socket.io侦听器没有被调用?,javascript,android,node.js,kotlin,socket.io,Javascript,Android,Node.js,Kotlin,Socket.io,我编写了用于用户身份验证的套接字中间件,但我不知道我的问题出在哪里! 在android端“未授权”事件未调用 服务器端: async function (socket, next) { if (socket.handshake.query && socket.handshake.query.token) { jwt.verify(socket.handshake.query.token, process.env.SECRET_JWT_KEY,
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'));
}
异步函数(套接字,下一个){
if(socket.handshake.query&&socket.handshake.query.token){
jwt.verify(socket.handshake.query.token、process.env.SECRET\u jwt\u密钥、函数(err、decoded){
如果(错误){
emit(“unauthorized”,“unauthorized user”)我认为您需要首先通过调用apply块内的这一行连接到套接字
this.connect()
终于找到了解决方案,在抛出错误时无需从中间件发出消息。您可以在android客户端中获得预定义事件,如下所示:
socket.on(Socket.EVENT_ERROR) { args -> println(args.contentToString()) }
应用块用于“选项”。不过我会尝试socket.connect()
socket.on(Socket.EVENT_ERROR) { args -> println(args.contentToString()) }