javascript - Meteor SimpleSchema + Methods : clicking too fast throw an error -


first, have schema:

rides = new mongo.collection('rides');  rides.attachschema(     new simpleschema({         name:{type:string},         'passengers.$._id': {             type: string,             autovalue: function(){                 if(this.isupdate && this.operator !== '$pull')                     return this.userid;                 else                     this.unset();             }         },         'passengers.$.validate':{type:boolean}, ); 

server side, have these methods:

meteor.methods({     leaveride: function(_id){         check(_id, string);         rides.update(_id, {             $pull:{passengers:{                 _id:this.userid             }}         });     },     joinride: function(_id){         check(_id, string);         rides.update(_id, {             $addtoset: {passengers: {validate:true}}          });     } }); 

and finally, 2 buttons join , leave call:

 template.ride.events({     'click .join': function(e){         meteor.call('joinride', this.ride._id);     },     'click .leave': function(e){         meteor.call('leaveride', this.ride._id);     }, }); 

it works fine, problem when click fast on buttons (one after another), seems queries don't have time process , get:

client-side (either of these):

error invoking method 'leaveride': internal server error [500]
error invoking method 'joinride': id required [400]

server-side (either of these):

exception while invoking method 'leaveride' error: did not check() arguments during call 'leaveride'
exception while invoking method 'joinride' error: id required

after hours of investigation, turned out easy security package preventing calls when clicking faster 500ms between clicks (security against ddos).

see : https://github.com/matteodem/meteor-easy-security


Comments

Popular posts from this blog

Fail to load namespace Spring Security http://www.springframework.org/security/tags -

sql - MySQL query optimization using coalesce -

unity3d - Unity local avoidance in user created world -