发送数组以发出原因 最大调用堆栈大小超出了 Javascript socket.io



>我有一个函数:

//  ***************     Send Players their cards     ***************
function sendplayerThierCards(myplayerNum, myN_Cards){
console.log("sending player: "+ myplayerNum + " their cards: " + myN_Cards);
socket.emit('playersCards', {
playerNum: myplayerNum,
myCards: myN_Cards,
room: code
});
}

调用它的代码:

let myHand = new Array();
for(let i=0; i<5; i++)
myHand[i] = player1Hand[i]
sendplayerThierCards(1,myHand);

如果我将字符串发送到myN_Cards则调用 emit。 如果我将数组发送到myN_Cards,则会收到错误: "最大调用堆栈大小超出 Javascript">

服务器在这里: https://github.com/tsehnoutka/GameServer

游戏代码在这里: https://github.com/tsehnoutka/callStackSizeExceeded

这对我来说没有意义,因为我能够在代码的另一部分发送数组。 另一个数组:

var playerInfo = [{
name: "Red",
color: "red",
background: "Coral"
},
{
name: "Blue",
color: "blue",
background: "LightSkyBlue"
},
{
name: "Green",
color: "green",
background: "Lime"
},
{
name: "Yellow",
color: "yellow",
background: "#fcfce8"
},
];

及其功能:

//  ***************     Send All Players     ***************
function sendAllPlayersJoined(){
console.log("sending all players info");
socket.emit('allPlayersNames', {
players: playerInfo
});
}

我更改了我发送的数据量似乎有效,而不是整个卡,我只是发送等级和花色

for ( i = 0; i < 5; i++)
myHand[i] = {suit: player1Hand[i].suit, rank: player1Hand[i].rank};
sendplayerThierCards(1, myHand);

谢谢大家

最新更新