top | item 7084897

Rtc.io – Open source WebRTC library

54 points| gioi | 12 years ago |rtc.io | reply

29 comments

order
[+] kodablah|12 years ago|reply
Does this have a WebRTC data channel client implementation, or does it solve more rudimentary aspects of WebRTC such as passing offers and answers (i.e. signalling)? This node module [1] is a client for data channels (but sadly no native Windows support yet which is a needed thing [2]). Once more widely adopted, WebRTC will be a great data communication method between users of all sorts of common-user desktop applications, not just browsers, mainly because of it's NAT traversal techniques and encrypted-by-default requirement. In some instances a TURN proxy may be required (and the popular one [3] isn't the easiest to setup, and doesn't have a native-Windows-not-Cygwin install). This is especially true for users behind large corporate/government networks that don't give you a single public IP per machine.

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/

[+] djoehlman|12 years ago|reply
The client portions are definitely in the library, and as you point out the node-webrtc library is looking really promising for interop with server processes.

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...

[+] erichocean|12 years ago|reply
Dear GitHub: Please make it possible to "follow", or at the very least, star an Organization. I want to bookmark https://github.com/rtc-io, not a particular project they are doing.

Organizations, as currently implemented, are the opposite of "social". Spend some of that $100 million and fix it please. Thanks.

[+] motyar|12 years ago|reply
Is there any app or project something like btysnc? I mean data sync using WebRTC? Any thought about speed? Can it be faster than btysnc? Thanks
[+] djoehlman|12 years ago|reply
I think there has been some progress made on implementing BitTorrent like clients using WebRTC data channels:

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...

[+] Thiz|12 years ago|reply
I am new to WebRTC so here is my question: how can you "ring" my browser so I know I have an incoming call without you first telling me to go to a specific url?

I believe WebRTC has great potential to replace facetime and skype with a browser based version.

[+] 0x0|12 years ago|reply
I've just started looking into it, and as far as I can understand, you can't "push" a call to others. You will have to supply a web page and the javascript to connect to a "meeting room" or whatever (using ajax?) to "find" the other peer, and exchange connection parameters, before the webRTC stuff kicks in. (Correct me if I'm wrong)
[+] higherpurpose|12 years ago|reply
WebRTC is just a protocol for applications. So you'll need to have Hangouts or Skype or whatever client using WebRTC open, and then it should work when someone calls you through them, on the web.

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.

[+] silviapfeiffer|12 years ago|reply
Before you can "ring" somebody in their browser, their presence has to get established first. So, they need to have signalled their presence to a signalling server first. That can happen via loading a specific URL, or being logged in to a specific Website. It's not possible to just magically know that they are around without them announcing it.
[+] vectorpush|12 years ago|reply
Does anyone know of any resources (maybe a code example) for establishing a webrtc peer connection between a browser and an arbitrary service?
[+] silviapfeiffer|12 years ago|reply
What does the "arbitrary service" provide? Is it a video conference, audio conference, or data channel end point?
[+] alecsmart1|12 years ago|reply
This is definitely a good and much required resource. You should look at also adding components for iOS and Android as well.
[+] badfilesam|12 years ago|reply
Do you know if it could actually work on iOS and Android? It doesn't seem supported by Safari yet [1]. I'm deeply interested by capturing the microphone on mobile devices with WebRTC.

[1] http://iswebrtcreadyyet.com

[+] sciurus|12 years ago|reply
If you're looking to do WebRTC on those platforms check out Phono Mobile. It supports iOS and Android via Phonegap.

http://phono.com/