socket.io房间是否有像Quizup这样的实时多人游戏?我已经为连接到服务器的两个玩家的匹配编写了这段代码:
var waitingPlayer = null;
io.on('connection',(socket)=>{
console.log('new user connected');
if(waitingPlayer == null)
{
waitingPlayer = socket;
waitingPlayer.emit('waiting-message',{
text:"waiting for an opponent"
});
}
else{
waitingPlayer.emit('matchFound',{
text:"Match Found"
});
socket.emit('matchFound',{
text:"Match Found"
});
}
}
答案 0 :(得分:1)
socket.io房间是否有像Quizup这样的实时多人游戏?
排序,但不是真的。
Socket.io房间如下:
而且,这就是它们的本质。
房间内置无配对功能。您可以将房间用作等候室和个人匹配的集合管理工具,但您将自己实现匹配制作逻辑,并将房间用作集合(用于跟踪一个或多个套接字的便捷工具)
例如,您可以在socket.io中创建一个“waitingRoom”空间,您可以在其中放置任何想要匹配的套接字,但是还没有匹配。然后,一旦你想要启动另一个游戏,你就可以从waitingRoom集合中随机选择两个套接字并在它们之间启动匹配。但是,在那种情况下,你真的只是将房间用作收集工具,没有别的。您也可以轻松拥有自己的套接字阵列,也称为waitingRoom。
在您显示的代码中,如果您从未拥有多个等待播放器,那么您可以将其保存在一个变量中,就像您一样。您的现有方案似乎需要更多逻辑,以便当套接字与正在进行的游戏断开连接而另一个套接字再想要再次找到游戏时。而且,您需要处理waitingPlayer
也断开连接的情况。