Could anyone give me a brief intro about How webrtc work - webrtc

All:
I read some intro posts about WebRTC, feel exciting but still a lot of confuse.
Some posts talks the WEBRTC need a server to relay while others say it only need client side support.
I wonder if anyone can give me a brief talk about how webRTC work with a simple example(like how to setup a P2P video meeting)
THanks

Here are two articles that describe pretty everything you need to start using WebRTC:
http://www.html5rocks.com/en/tutorials/webrtc/basics/
http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/

Related

What are the WebRTC samples at https://webrtc.github.io/samples/ supposed to do?

I am trying to work with the WebRTC samples from https://webrtc.github.io/samples/.
IIUC, these should be quite up to date and original minimal samples that will help to understand the technology.
So I am looking for example at https://webrtc.github.io/samples/src/content/peerconnection/pc1/
which is supposed to be Peer Connection Demo.
Despite this is supposed to be Peer connection demo, all it does is to show me my own camera on one machine. Even if I start it on two machines, I see my own camera picture on each one.
If I read the code, I can find hints that this is supposed to make a connection between two machines, yet I fail to understand how. Nowhere on the site it is asking for a peer name, room name or anything which would identify the other party to call.
Am I missing anything here.
I know there are plenty of other WebRTC conference solutions out there on the web for demo purposes, but they all are so much more complex. I am looking for a simple 1:1 demo with source which will allow be to embrace the concept.
Look at the companion project apprtc or steps 7 and 8 of the WebRTC codelab
Having a "peer" requires an enormous amount of effort such as running a signaling server. The samples project only aims to demonstrate how to use APIs and does avoid the signaling topic by calling the API functions on another object in the same page.
I changed the demo code myself on: http://wx.qibu.net.cn/home/demo, using signalR for websocket. you can run it between different PC
The demo code should be separate and use stun and turn servers if necessary

sequence diagram for typical webrtc use cases (like text, video, audio )

I hope my question is legit... I am asking this question because after 1 week reading many blogs, playing with many sample apps, and the official API, I am still very confused, and where to start the coding...
Overall, in term of system architecture between browers <-> web servers <-> Signaling servers, etc.. I got it clearly since there are tons of diagrams out there. But I cannot get myself confidence with the coding, all those classes and methods and events... such as RTCPeerConnection Interface , RTCDataChannel, signalingState , etc...
A sequence diagram for "Alice text/video call Bob" would be very helpful for the coding. If N/A I will make one myself and share in answer section
http://www.w3.org/TR/webrtc/
See the section: 10.4 Call Flow Browser to Browser
It is a complete workflow diagram, including all the webRTC internals topics, like PeerConnections, media description, offer, answers, etc.
This slide might help:
http://www.slideshare.net/alexpiwi5/overviewpeerconnectionlifetime
you have on each side of the central row the sequence of the JS API you need to call.

What options are there for a IP camera to webRTC/ORTC gateway? Onvif compatible or not

There was some discussion on this topic here but not specific to my questions. You can consider this as an extension to the question asked there. Googling gives only two possible solutions: Kurento and Janus. The questions I have are:
Are there other options, opensource or otherwise?
Among these options, can someone share some experience based upon actual use?
Is there a list of IP Cameras which are compatible with such gateways? Or
What specific features must an IP camera have to be able to use such a WebRTC gateway?
Is is correct to say that if webRTC indeed takes off, then webRTC support for IP cameras is just a matter of time, which will get incorporated in standards such as Onvif?
I do not need an application per se but just the bare minimum so that other WebRTC components can be plugged in to create an application. The issue is not just about codec conversion but about some related signalling (as distinct from the WebRTC signalling which is anyway not standardized). This is discussed nicely on Kurento here.
I have also read about IP Camera standards, in particular Onvif. I am not looking for any compatibility with this standard which is a different issue.
I did take a look at arguably the most popular opensource software for CCTV cameras: Zoneminder but that is a very bloated software, a full-fledged application and does not have any support for streaming camera video/audio over webRTC.
Kurento has been reported to work well with RTSP camera feeds in many occasions. You can check the official mailing list for that. There's a demo here, if you are interested on how it would be done. There's a pull-request that you'll need to include, and though it could be outdated, the demo works just fine still, for letting you know how to do that.
Disclaimer: I'm part of the Kurento project.

https for facebook applications

Read a lot about the new guidelines for facebook developer,
but i got know real answer about this:
Do I realy need a https-website to get an app running?
Anyone got it running via ssl-proxy?
Thx Sven
Not really a stackoverflow.com question, nor is this (1) something not covered by Facebook already (see http://developers.facebook.com/blog/post/497/). In short, yes, you must have SSL-ready server.
As for (2) stackoverflow.com is not a platform meant to advertise products. Your most likely answer is http://godaddy.com (personally not using any godaddy.com services and would not recommend them for any other reason that price).
There are a lot of alternatives, e.g. http://networksolutions.com, http://rapidssl.com (see http://www.cheapssls.com/ for more offers).

Boost Asio and Web Sockets?

Does anyone know of any attempt to implement the Web Sockets API using Boost asio?
I realize this is an old thread, but wanted to update to help those looking for an answer: WebSocket++ fits the bill perfectly. Wt is an entire framework and may be more than many people want.
Wt implemented WebSockets on top of boost::asio.
Beast is another project, demonstrated at CppCon 2016 and used in rippled, an open source server application that implements a decentralized cryptocurrency system.
Also see this related question.
The closest example I know of anyone doing anything remotely like what you're asking is the Mongoose project. There is an increasing amount of discussion on the Mongoose mailing list about persistent connections for HTTP - but that's obviously not exactly Web Sockets. I would hope that someone would be able to add Web Sockets to it, too, eventually.