8

Por lo tanto, uno de los aspectos más confusos que he estado observando con Meteor es que las sesiones se borran cada actualización. Como no es una tienda persistente, ¿dónde colocaría cosas como ID de usuario o dónde hay personas en la máquina de estados de mi aplicación?Sesiones persistentes en Meteor

¿Cuáles son los patrones para esos escenarios?

Respuesta

3

Bueno, para empezar usaría los meteoros built in Auth para almacenar ID de usuario. Están utilizando el almacenamiento local por defecto, creo, pero AFAIK no hay una manera fácil de conectar con eso.

Sin embargo, hubiera pensado que si quiere que las cosas sobrevivan durante las renovaciones, debe almacenarlas en mongo o usar la URL para indicar dónde están en la 'máquina de estado'. Puede usar el enrutador de arranque (por ejemplo) para usar pushState para cambiar la URL.

9

En realidad, lo que podría hacer es crear una "subclase" de sesión que almacene el valor en el almacenamiento local de Amplify cuando se invoca set(). Automáticamente heredarías todas las propiedades reactivas de Session. Aquí está el código, que trabajó para mí:

SessionAmplify = _.extend({}, Session, { 
    keys: _.object(_.map(amplify.store(), function(value, key) { 
    return [key, JSON.stringify(value)] 
    })), 
    set: function (key, value) { 
    Session.set.apply(this, arguments); 
    amplify.store(key, value); 
    }, 
}); 

basta con sustituir todas sus Session.set/recibir llamadas con SessionAmplify.set/recibir llamadas. Cuando se invoca set(), se llama al método Parent Session, así como a amplify.store(). Cuando se crea por primera vez la "subclase", carga todo lo que está en la tienda de amplificación dentro de sus claves, para que puedan recuperarse de inmediato con get().

usted puede probar una variación de trabajo de la tabla de posiciones ejemplo aquí: https://github.com/sebastienbarre/meteor-leaderboard

+1

Niza. Encontré esto para otra cosa, pero voy a utilizar totalmente esta idea. Gracias, Sebastien! –

+0

+1, esto funciona maravillosamente – danii

Cuestiones relacionadas