我将使用socket.io创建一个多人游戏迷你游戏,节点并作为前端做出反应。我让房间逻辑工作,但我不确定这是否是最好的方式,特别是在玩家加入房间的一侧。这是我的代码,任何可以帮助我改善这一点的提示都非常感谢,ty!
///我们将从我们创建房间的客户开始
add() {
socket.emit('create')
this.setState({mode: 'player'}) //ignore this, part of react
}
///现在在服务器上我们得到了这个
socket.on('create', () => {
socket.join(socket.id);
io.in(socket.id).emit('join', 'U are in the room!')
rooms.push(socket.id) //ignore this
socket.broadcast.emit('created', socket.id) ///ignore this
})
//最后回到客户端,进行简单的检查
socket.on('join', data => alert(data))
所以我们基本上创建并加入了房间,现在是另一个玩家试图加入房间的部分。
///在客户端我们加入房间(点击e.target.value =房间名称的按钮)
join(e) {
socket.emit('joined', e.target.value) //e.target.value == a room name
}
//现在回到服务器
socket.on('joined', data => {
socket.join(data) //we got the player in the room!
io.in(data).emit('joined', 'Hello man, Im new here!') //do I really need this part?
})
//最后是客户端
socket.on('joined', (data) => {alert(data)}) //do I need this as well?
这是我的房间逻辑,我不确定的部分是当玩家试图加入房间时的第二个部分,我担心它可能是不必要的代码,因为我需要连接只插入服务器上的房间,事件将从创建者socket.on ...
中发出