Overview

Server

Rooms

All users and clients in a room can share their streams through Licode.

They can act like videoconferencing chats, instant messaging rooms, video streaming sessions, and any other kind of virtual space for real-time collaboration.

A room is created by server apps through Nuve API, and the users will connect to these rooms through Erizo.

Rooms are controlled by Erizo Controller, which manages Erizo through a JavaScript wrapper called Erizo API to control streams.

Server

Developers will manage rooms (creation and deletion) from their server apps.

Typical server apps can create a room, and request access for their users to Nuve, via a token-based authentication mechanism.

This mechanism allows these servers to create access tokens, and they will provide these tokens to their clients.

Server talks to Nuve in order to do these actions.

Erizo

Clients will connect users to rooms through Erizo service. Developers can manage this service with a JavaScript library that runs in the browser.

Erizo is a cloud-based scalable service that allows multiple users to connect to Licode rooms. These rooms are created by the server apps using Nuve API.

Erizo Controllerwhich manages Erizo through a JavaScript wrapper called Erizo API to control streams.

Nuve API

Developers can manage Licode rooms by sending requests to this API. These requests are typically sent from server apps, coded in python, node.js, Ruby on Rails, and so on.

Licode provides different libraries, plug-ins and add-ons to facilitate the tasks of creating and removing rooms.

Server apps can also ask for access tokens to this API. These tokens are needed for user connections, so developers should pass them to clients.

Server talks to Nuve in order to do these actions.

Clients

Clients are JavaScript applications that run on browsers. Users will be able to access Licode rooms by using these clients.

When connecting to a room a client needs the access token that is usually taken by server apps.

But the use of these rooms depends on your imagination! You could implement videoconference rooms, chat, synchronization mechanisms, VoIP applications, and so on.

Clients talk to Erizo Controller through Erizo client, which is part of this project.