>我有一个函数:
// *************** 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);
谢谢大家