【发布时间】:2021-09-23 21:23:27
【问题描述】:
我正在使用 Socket.IO 在 Node.js 中编写游戏,并且我正在使用来回发射在客户端和主机之间传输数据。学习起来并不难,但这让我无所适从。我正在制作一个使用房间的游戏,玩家输入房间代码并加入它,然后我将游戏特定数据发送到该房间。
这是一个有效的方法
/**
* The amount of time to answer the questions is over
* @param data - room number
*/
socket.on('timesUp', function (data) {
console.log("Times UP!");
console.log(data.roomNum);
socket.emit('startVoting');
})
这是不工作的代码:
socket.on('playersVote', function (data) {
console.log("playersVote data: " + data.playerOneResponse);
console.log(data.roomNum);
socket.to(data.roomNum).emit('playerStartVoting', {pOne: data.playerOneResponse, pTwo: data.playerTwoResponse} );
console.log("after io emission");
})
我知道发射正在发送到服务器,因为所有控制台日志都会打印有意义的数据:
playersVote data: [object Object]
{
question: null,
response: 'c',
name: 'w',
id: 'TW_92Ojct1EyhhE5AAAL',
roomNum: '845'
}
845
after io emission
“playerStartVoting”排放的应用端处理程序如下:
IO.socket.on('playerStartVoting', IO.onPlayerStartVoting);
调用onPlayerStartVoting 是:
onPlayerStartVoting: function (data) {
console.log("voting started");
if (data.pOne.id === App.mySocketID || data.pTwo.id === App.mySocketID) {
App.Player.displayBlank();
}
else {
App.Player.vote(data);
}
},
我一直无法让客户端控制台日志“投票开始”,所以我知道这就是它死亡的地方。我无法弄清楚为什么会这样。
希望有人能帮忙!
【问题讨论】:
标签: javascript node.js json socket.io