I have the same problem on this. I posted a issue on github project libuv, it's the core of event system of Node.js, since I believe that's the cause why trickle does not work. (https://github.com/joyent/libuv/issues/844)
Thanks to response from bnoordhuis, the reason trickle can't work is because of libuv use system_call to use system call directly, not by calling glibc. However, trickle only wrap glibc functions to add bandwidth limitation support.
I haven't found a perfect solution yet, but you can try these:
- pfSense: a freebsd-based standalone firewall with bandwidth limitation support
- netbrake: like trickle, worked with Node.js, but it's not accurate, and need to limit upload and download bandwidth together
- trickle: if you are trying to do some experiments, you can try to use trickle on the client side, since trickle is worked with curl