gpt4 book ai didi

mysql - TypeScript - mysql - socket.io 在尝试登录失败后重新发出

转载 作者:行者123 更新时间:2023-11-29 17:03:22 25 4
gpt4 key购买 nike

我遇到了这个问题,在我登录失败然后成功登录游戏后,每次登录失败时都会创建一个游戏实例。注册尝试失败时也会发生这种情况。

我喜欢为你们提供更多上下文代码,但堆栈溢出会要求我提供更多细节,我不知道还能说什么。我将链接我的存储库。

一次失败的尝试:image

两个游戏实例:image

我的仓库:elevaidusTS

服务器

        socket.on('signIn', (signInInfo: any) => {
let sql = 'SELECT * FROM player WHERE username = ? AND password = ?';
var query = this.db.query(sql, [signInInfo.username,signInInfo.password], (err, res) => {
if (err) {
console.log(err);
socket.emit('errorFromBackend', err.code);
}else if(res.length === 0){
socket.emit('errorFromBackend', 'username and or password was incorrect');
}else{
console.log(`\n\n===============>\t Player logging in\n`)
console.log(`===============>\t username: ${signInInfo.username}\n`)
console.log(`===============>\t password: ${signInInfo.password}\n`)
this.CreatePlayer(socket, { player: res[0], isNew: false });
}
})
})

客户端

   public SignIn(): void {
this.socket.emit('signIn', {username: signInUsername.value, password: signInPassword.value })
this.socket.on('signedIn', (playerInfo: any) => {
this.CreateGame(playerInfo);
})
this.socket.on('errorFromBackend', (err: string) => {
alert(err);
})
}

public SignUp(): void {
this.socket.emit('signUp', {username: signInUsername.value, password: signInPassword.value })
this.socket.on('signedUp', (playerInfo: any) => {
this.CreateGame(playerInfo)
})
this.socket.on('errorFromBackend', (err: string) => {
alert(err);
})
}

最佳答案

我将监听器放在与发射器相同的函数中。当我按下注册/登录按钮时,将创建一个新实例,我的监听器将被创建,因此当监听器被击中时,监听器的每个实例都会完成工作。

helpful post

关于mysql - TypeScript - mysql - socket.io 在尝试登录失败后重新发出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52155176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com