Rtc.io – Open source WebRTC library
rtc.io
rtc.io
I have done a lot of work w/ WebRTC data channels recently and I am working on a POC for hosting one's own "page" (i.e. facebook-esque profile page) themselves. WebRTC I think is the best technology so far for the decentralization of internet data from hosted servers to users. It still requires some server side things such as signalling (the handshake), STUN servers (external IP discovery behind a network), and TURN servers (proxies for complicated networks). By packaging up those three things into a single server that can be easily deployed by someone you trust (i.e. some kind of regional "manager" of sorts) and having good software to display web content over WebRTC data channels, a neighborhood-level darknet of sorts will be very feasible for even non-technical users.
1 - https://github.com/js-platform/node-webrtc 2 - https://github.com/js-platform/node-webrtc/issues/42 3 - http://code.google.com/p/rfc5766-turn-server/
If you need any help with the POC that you are currently working on feel free to reach out and I'll see what I can do (I'm the main dev working on rtc.io at the moment). Also, the primary dev on the node-webrtc project (modeswitch) is super helpful so I'm sure he'd be happy to help out also.
Either twitter or github is a good way to get in touch with me - usename is DamonOehlman in both channels...
Organizations, as currently implemented, are the opposite of "social". Spend some of that $100 million and fix it please. Thanks.
Some of the other modules (rtc-quickconnect, rtc-glue, etc) in the rtc.io suite, however, do take you further away from the metal but if you are comfortable with the core browser APIs then using a combination of rtc-signaller and the connection coupling helper in rtc (https://github.com/rtc-io/rtc/blob/master/couple.js) will probably give the most flexible option for writing a WebRTC application.
Just be aware that there are some bizarre edge cases when working with WebRTC that can leave you scratching your head at times. The rtc/couple module takes care of some, but there are still others that I'm still investigating solutions for, e.g. https://github.com/rtc-io/rtc/issues/14
https://github.com/rtc-io/rtc-signaller
That said, it wouldn't take much to write an signalling client that followed the basics of the messaging format if you did want to roll your own:
https://github.com/rtc-io/rtc-signaller#signaller-message-ha...
https://github.com/feross/webtorrent
I haven't done that much investigation myself yet, but I definitely think it's possible. No idea on which will be faster, I imagine it will come down to quantity and quality of peers in both cases...
I believe WebRTC has great potential to replace facetime and skype with a browser based version.
Interesting...
Take Facebook Chat for example or whatever they are calling that integration with a Java Skype plugin. Instead of using that Java plugin, it could use WebRTC in the future, and it won't even need Skype. It could just work with Facebook users, which is something Facebook might want anyway, or at least until Skype uses WebRTC, too.
There is this issue which is being worked on at the moment in the node-webrtc library:
https://github.com/js-platform/node-webrtc
Once that's resolved data channel connectivity between a browser and command-line app, server, etc should be reasonably simple. While this bug is outstanding, it is possible to fall back to Rtp data channels in the browser and if that is something that is of interest then we can look at putting together some examples with rtc.io if that would help you out.