Your example translates the file into a base64 string to send over the unreliable channel, which ends up being a pretty big performance hit compared to a native binary transport.
All of this is to say: WebRTC is getting there, but it's still going to be several months before it's ready for more than demos like this.