Javascript NodeJS WebSocket中的局部持久变量
我试图为每个WebSocket连接创建持久变量Javascript NodeJS WebSocket中的局部持久变量,javascript,node.js,websocket,Javascript,Node.js,Websocket,我试图为每个WebSocket连接创建持久变量player,如下所示: Server.on('request', function(request) { const WSCon = request.accept(null, request.origin); var player = "none"; WSCon.on('message', function(message) { if (data.action == 0) HandleRo
player
,如下所示:
Server.on('request', function(request) {
const WSCon = request.accept(null, request.origin);
var player = "none";
WSCon.on('message', function(message) {
if (data.action == 0) HandleRoomEnter(player);
if (data.action == 1) HandleReadyness(player);
});
});
function HandleRoomEnter(player) {
player = "Conan";
console.log("setting: "+player);
}
function HandleReadyness(player) {
console.log("getting: "+player);
}
但是,我的输出是:
setting: Conan
getting: none
问题在哪里
谢谢,这是正确的方法:
Server.on('request', function(request) {
const WSCon = request.accept(null, request.origin);
let player = "none";
function HandleRoomEnter(player) {
player = "Conan";
console.log("setting: "+player);
}
function HandleReadyness(player) {
console.log("getting: "+player);
}
WSCon.on('message', function(message) {
if (data.action == 0) HandleRoomEnter(player);
if (data.action == 1) HandleReadyness(player);
});
});
另外,请使用let或const代替var。谢谢,这并不完全是正确的方法,但它可以帮助我找到它。我必须从函数中删除“player”参数。而不是“HandleRoomEnter(player)”->“HandleRoomEnter()。在那之后,它成功了。非常感谢。