He utilizado el método de publicación y suscripción de meteoritos para interactuar con el cliente y el servidor. Ahora, de acuerdo con mi escenario, estoy usando D3 js para generar un gráfico de barras y tan pronto como los datos se ingresan en la colección mongo db, estoy usando una función del lado del cliente para generar un gráfico de barras. Mi problema es que publicar y suscribirse es demasiado lento para reaccionar. E incluso si limito la cantidad de documentos devueltos por mongodb, el problema persiste. También es inconsistente, es decir, a veces reaccionará en menos de 1 segundo y otras veces tardará 4-5 segundos. Por favor, guíeme sobre qué hacer y qué está mal con mi implementación.
Aquí está el código del lado del servidor,
Test = new Mongo.Collection("test") Meteor.publish('allowedData', function() { return Test.find({}); })y aquí está el código del lado del cliente,
Test = new Mongo.Collection("test") Meteor.subscribe('allowedData'); Meteor.setTimeout(function() { Test.find().observe({ added: function(document){ //something }, changed:function(){ //something }, removed:function(){ //something }, })Por sus comentarios, veo que necesita un gráfico de informe que sea reactivo. Aunque es su requisito, es demasiado costoso tener un gráfico como este. De hecho, cuando su sistema crece, digamos que tiene alrededor de 10000 documentos para un solo gráfico, este tipo de gráfico colapsará su servidor con frecuencia.
Para solucionar este problema, tengo dos sugerencias: