Javascript键码在socket.io中不工作

Javascript键码在socket.io中不工作,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我有一个游戏项目,允许用户使用箭头键或WASD四处移动。我有这个代码来实现这一点 在HTML文件中: document.onkeydown = function(event){ if(event.keycode === 87 || event.keycode === 38){ socket.emit("keyPress",{input: "up", state: true}); } else if(event.keyCode === 83 || event.key

我有一个游戏项目,允许用户使用箭头键或WASD四处移动。我有这个代码来实现这一点

在HTML文件中:

document.onkeydown = function(event){
    if(event.keycode === 87 || event.keycode === 38){
        socket.emit("keyPress",{input: "up", state: true});
    } else if(event.keyCode === 83 || event.keycode === 40){
        socket.emit("keyPress",{input: "down", state: true});
    } else if(event.keyCode === 65 || event.keycode === 37){
        socket.emit("keyPress",{input: "left", state: true});
    } else if(event.keyCode === 68 || event.keycode === 39){
        socket.emit("keyPress",{input: "right", state: true});
    }
};
document.onkeyup = function(event){
    if(event.keyCode == 87 || event.keycode === 38){
        socket.emit("keyPress",{input: "up", state: false});
    } else if(event.keyCode == 83 || event.keycode === 40){
        socket.emit("keyPress",{input: "down", state: false});
    } else if(event.keyCode == 65 || event.keycode === 37){
        socket.emit("keyPress",{input: "left", state: false});
    } else if(event.keyCode == 68 || event.keycode === 39){
        socket.emit("keyPress",{input: "right", state: false});
    }
};
现在在JavaScript文件中:

socket.on("keyPress",function(data){
    if(data.input == "up"){
        player.up = data.state;
    } else if(data.input == "down"){
        player.down = data.state;
    } else if(data.input == "left"){
        player.left = data.state;
    } else if(data.input == "right"){
        player.right = data.state;
    }
});
var Player = function(id){
    var self = {
        x: 250,
        y:250,
        id: id,
        up: false,
        down: false,
        left: false,
        right: false,
        speed: 5
    };
    self.updatePosition = function(){
        if(self.up){
            self.y -= self.speed;
        } else if(self.down){
            self.y += self.speed;
        } else if(self.left){
            self.x -= self.speed;
        } else if(self.right){
            self.x += self.speed;
        }
        if(self.x < 0){
            self.x = 0;
        } else if(self.x > 500){
            self.x = 500;
        } else if(self.y < 0){
        self.y = 0;
        } else if(self.y > 500){
            self.y = 500;
        }
    }
    return self;
}
socket.on(“按键”),功能(数据){
如果(data.input==“向上”){
player.up=data.state;
}else if(data.input==“down”){
player.down=data.state;
}else if(data.input==“left”){
player.left=data.state;
}else if(data.input==“right”){
player.right=data.state;
}
});
var Player=函数(id){
var self={
x:250,
y:250,
id:id,
上:错,
唐:错,
左:错,
右:错,
速度:5
};
self.updatePosition=函数(){
if(self.up){
self.y-=自速度;
}else if(self.down){
self.y+=自速度;
}else if(self.left){
self.x-=自速度;
}else if(self.right){
self.x+=自速度;
}
if(self.x<0){
self.x=0;
}否则如果(self.x>500){
自身x=500;
}else if(self.y<0){
self.y=0;
}否则,如果(自y>500){
自身y=500;
}
}
回归自我;
}
但是,箭头键和W键不起作用。ASD键工作得非常好


为什么箭头键和W键不起作用?代码中的钥匙代码以及位置更新正确。我应该如何使其工作?

keyCode
!==<代码>键代码。。。。使用
keyCode
-提示:javascript区分大小写请查看MDN对以下内容的说明:“此功能已从Web标准中删除。尽管某些浏览器可能仍然支持它,但它正在被删除。避免使用,并尽可能更新现有代码;请参阅本页底部的兼容性表以指导您的决策。请注意,此功能可能随时停止工作。“此外,不要与keyup和keydown事件一起使用,最好使用keypress。哦,我没有看到@JaromandaX感谢您的帮助。