PeerJS — True peer-to-peer data in the browser
peerjs.com
peerjs.com
Q1. Does this support connecting to a peer behind a NAT device?
Q2. Does this support connecting two peers each behind its own NAT?
Because a vast majority of real world cases will fall into either of these two categories.
Specifications here
BTW, consider that they are shipping first final version in march so NAT reversal is important. YEY!
Speaking from past experience, STUN and ICE are OK, but they got the whole process fundamentally wrong. They let the clients drive the traversal process. This is substantially inferior to letting a dedicated mediating server do that instead. I did that with one of my past projects and it helped with connecting peers in a large number of obscure scenarios.
You can play with their chat demo here: http://cdn.peerjs.com/demo/chat.html
(Google Chrome 26.0.1403.0 or above is required)
I'd personally like to see them implement proper SVG support before they do too.
I mean, video rendering kills the performance of your browser I guess is better just to show the possibility of data transferring and then you build it by using the desired specs. Many ongoing video demos are avaliable too :)
Those guys are also in the same ship with the browser P2P using WebRTC.