Oh maybe my post was a little confusing. It had quite a few typos, sorry. What I meant to say is that I think WebRTC's RTCDataChannel might help users send real time data from client to client without having to store stuff in MongoDB. Right now some developers, including myself, perceive this is a major limitation in Meteor, but I think RTCDataChannel, just to send small bits of data like bjson sent via ddp, might be a great way to get around having to store stuff in MongoDB.
For example if you want a chat room in Meteor.js, and you want to detect who all is connected to your room, you might do something like in the presence package in Atmosphere, which uses a collection in MongoDB called Meteor.precesnces. The client does polling on a basic interval and the server does a findOne query lookup on MongoDB. Not very real time, not very efficient. If you built something with
socket.io/sockjs yourself you could probably store these connections in memory (if there's a lot in redis) and update automatically by referencing the actuall connection.
But RTCDataChannel is even better than that, because it's peer to peer. You get real time connection updates, without using the server for anything other than initial signaling. No polling, no storing stuff in mongodb. You actually know immediately who is in your chat room because the clients are all directly talking to each other.
For stuff like video you are correct, the bandwidth is significant, the solution is probably to use an MCU for WebRTC, but there aren't any good solutions in that space, all that is still experimental. I'm still working on just getting the basic p2p connection working, but that isn't going to be a big challenge, just following the documentation.
B