Meteor - 从阵列重定向几个连接的客户端?

时间:2016-03-28 12:40:09

标签: javascript meteor

我有一组来自mongo的_id的客户端,我想知道如何使用路由器将所有这些客户端(一次性)路由到一个页面?

示例:3个用户登陆名为" game"的页面,当有3个人时,我有一个保存用户ID的数组,所有用户的ID都保存在数组中应该被路由到另一个页面(例如:"第2页和第34页;)。我知道这应该从服务器端的角度来看,但我很难想出这个。

//client
Template.GameLayout.onRendered(function () {
var ses = Session.get("loggedIn");
Meteor.call('userCounter', ses, function(error, fullArray){

if(error && error.error === "noArray"){
  console.log(error);
  console.log("I have error");
} else {
  if(fullArray){
  var usersArray = fullArray[1];
  var randomGen = fullArray[0];

  console.log(randomGen);
}
}
})




//server
 userCounter: function(sessions){


  usersArray.push(sessions);

  var usersConnected = usersArray.length;

  if(!usersConnected){
    throw new Meteor.Error("noArray");
    console.log("oops heres the problem");
  } else {

  if(usersConnected > 2){


    var randomGen = Math.floor(Math.random() * 9999999) + 1;
    var fullArray = [randomGen, usersArray];
    console.log(fullArray);
    return fullArray;
    usersArray =[];
  }
}

  }

1 个答案:

答案 0 :(得分:0)

我个人会在客户端的Tracker.autorun()中执行此操作,例如:

Tracker.autorun(function(){
  if ( ... condition that you want to re-route on ... ){
    Router.go('page2');
  }
});

您的阵列必须以某种类型的集合发布,例如活动游戏,以便客户端可以相应地执行其逻辑和路由。