Node.js Node JS Express JS客户端/服务器游戏
我正在Node.js和Express js中编写一个两人纸牌游戏(为了简单起见,可以说是普通扑克)。有几件事我遇到了麻烦。首先,我如何确保只有2名玩家可以访问游戏实例,如果他们失去连接,是否可以让他们重新连接?第二,如何从服务器向客户端发送消息?我可以在“socket.on”侦听器调用中发送它,但在程序的正常范围内,我无法让它工作Node.js Node JS Express JS客户端/服务器游戏,node.js,Node.js,我正在Node.js和Express js中编写一个两人纸牌游戏(为了简单起见,可以说是普通扑克)。有几件事我遇到了麻烦。首先,我如何确保只有2名玩家可以访问游戏实例,如果他们失去连接,是否可以让他们重新连接?第二,如何从服务器向客户端发送消息?我可以在“socket.on”侦听器调用中发送它,但在程序的正常范围内,我无法让它工作 var socket = io.listen(app); socket.on('connection', function(client){ player++;
var socket = io.listen(app);
socket.on('connection', function(client){
player++;
if(player <= 2) {
var messageout = "player " + player + " connected";
client.broadcast(messageout);
client.on('message', function(data){console.log(data); })
client.on('disconnect', function(){console.log('disconnected');})
}
else {
socket.end;
}
});
var socket=io.listen(应用程序);
socket.on('connection',函数(客户端){
player++;
如果(玩家尝试
//服务器
var nowjs=require(“现在”)
var everyone=nowjs.initialize(应用程序);
所有人。已连接(函数(){
如果(用户长度<2){
用户。推(这个);
}
});
everyone.now.sendMessage=函数(消息,cb){
游戏逻辑(信息);
users.forEach(函数(用户){
update(gameLogic.getState());
});
};
//客户
$(“#操作”)。单击(函数(){
now.sendMessage($(this.data(“action”));
});
now.update=函数(数据){
//更新用户界面
};
首先,我如何确保
只有2名玩家可以访问
游戏实例
创建实例对象数组。
当新玩家加入时,创建一个新实例并将其设置为player1,或者将其添加到现有实例中作为player2
var instances = [];
function Instance () {
return {
name = 'game' + instances.length + 1,
gameVariables = defaults,
player1 = null,
player2 = null,
player1UUID = UUID(),
player2UUID = UUID()
}
}
有可能让他们重新连接吗
如果他们失去联系
如果您在每个玩家最初连接时向他们发送UUID,您可以让他们在重新连接时使用UUID进行身份验证
我如何从服务器发送消息
服务器到客户端
send({gameState:gameState()})
如果已将客户端保存到对象中,则为:instances['game1'].player1.send(data);
我都是用插座做的
我将处理与web套接字的所有动态交互
我是否每回合都返回一个包含游戏更新状态(卡片、赌注等)的网页
我不会通过web套接字发送html,而是发送json并使用客户端模板来呈现它
var instances = [];
function Instance () {
return {
name = 'game' + instances.length + 1,
gameVariables = defaults,
player1 = null,
player2 = null,
player1UUID = UUID(),
player2UUID = UUID()
}
}