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

| 我正在用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;
    }

});
从概念上讲,我在这里遇到问题以及如何解决该问题。例如,我是否全部使用插座?还是我每回合都会返回一个包含游戏状态更新的网页(纸牌,赌注等)?     
已邀请:
  首先,我如何确保   只有2位玩家可以访问   游戏实例? 创建一个实例对象数组。 当新玩家加入时,要么创建一个新实例并将其设置为player1,要么将其添加到现有实例中作为玩家2。
var instances = [];

function Instance () {
  return { 
   name = \'game\' + instances.length + 1,
   gameVariables = defaults,
   player1 = null,
   player2 = null,
   player1UUID = UUID(),
   player2UUID = UUID()
  }
}
  是否可以让他们重新连接   如果他们失去联系? 如果您在每个玩家最初连接时向他们发送了一个UUID,则可以让他们在重新连接时使用它进行身份验证。   我如何从   服务器到客户端? client.send({gameState:gameState()}); 您已将客户端保存到对象中的情况:
instances[ \'game1\' ].player1.send( data );
  我用插座完成所有操作吗? 我将处理与Web套接字的所有动态交互。   我是否每回合都会返回一个具有更新的游戏状态(纸牌,下注等)的网页? 我不会通过网络套接字发送html。而是发送json并使用客户端模板进行渲染。     
尝试
now
// server
var nowjs = require(\"now\")
var everyone = nowjs.initialize(app);

everyone.connected(function() {
    if (users.length < 2) {
        users.push(this);
    }
});

everyone.now.sendMessage = function(message, cb) {
    gameLogic(message);
    users.forEach(function(user) {
        user.update(gameLogic.getState());
    });
};

//client
$(\"#action\").click(function() {
     now.sendMessage($(this).data(\"action\"));
});

now.update = function(data) {
     // update UI
};
    

要回复问题请先登录注册