WebRTC using Peerjs with Native Android/iOS clients

Ignas picture Ignas · Feb 6, 2015 · Viewed 10.8k times · Source

We're trying to build an internal system which will provide us with simple chat/video features using WebRTC. We have successfully deployed Peer.js client and server which works great over the browser.

However, we can't seem to find a fairly simple Android/iOS client/SDK to make it compatible with our PeerJS server.

We've tried looking into AppRTC and got the Android client running with their server, however we can't understand how to connect it to our PeerJS server since that Android client (and server implementation) seems really complicated (we're not JAVA experts).

I've also looked into EasyRTC, however it seems that they've pulled back their native SDKs, but the technology stack looks really close to ours.

My question is, has anyone got and Android/iOS Client working with WebRTC running on a NodeJS server? What are the possible workarounds to get this up and running natively on Android?

We're looking for a fairly simple Android SDK (links to libraries/sample projects) which could work with a PeerJS server.

Edit: We could build a signaling server (on NodeJS) ourselves, but how can we build the Android/iOS clients from then on?

I'm offering a bounty of 200 rep to whoever can answer our questions.

Answer

9dan picture 9dan · Feb 6, 2015

I don't know PeerJS but it seems like using websockets. If that's the case you have to implement WebSocket client functionality in you native clients (and various PeerJS internal connection/signaling protocol).

For native to native signaling, it's really simple because we only have to exchange SDP and ICE candidate messages between clients (via WebSocket or any other messaging mechanisms).

To connect to PeerJS server, obviously, we need PeerJS client implemented in Java or C(ObjC).

I'll be surprised if such implementation or SDK exists.

I don't know current state of AppRTC source, but in its old version, it hosted a WebView to run a kind of HTML+JavaScript signaling client.

That is, you can host a WebView and reuse your PeerJS client in Android/iOS apps.