Node.js Node JS Express JS客户端/服务器游戏

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++;

我正在Node.js和Express js中编写一个两人纸牌游戏(为了简单起见,可以说是普通扑克)。有几件事我遇到了麻烦。首先,我如何确保只有2名玩家可以访问游戏实例,如果他们失去连接,是否可以让他们重新连接?第二,如何从服务器向客户端发送消息?我可以在“socket.on”侦听器调用中发送它,但在程序的正常范围内,我无法让它工作

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()
  }
}