2016-03-28 64 views
0

我有一个客户端数组与他们的_id从mongo,我想知道如何路由所有他们(一次)到使用路由器的页面?流星 - 从阵列重定向几个连接的客户端?

示例:3个用户登录名为“游戏”的网页,当有3个人时,我有一个保存其用户ID的数组,所有保存在数组中的用户都应该路由到另一个页面检查:“page2”)。我知道这应该从服务器端的角度来完成,但我很难找出这个问题。

//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 =[]; 
    } 
} 

    } 
+0

更清晰一点会有帮助。你为什么要重定向用户?你想在什么基础上做到这一点?你想在哪里启动重定向(服务器端或客户端)? –

回答

0

个人而言,我只想做在客户端一个Tracker.autorun(),例如:

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

你的阵列将有某种形式的集合出版,说活动性游戏以便客户可以相应地执行其逻辑和路线。