From e99d91610a66eee725a8f4beffd15d967e09a3ab Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Fri, 13 Mar 2015 18:23:56 +0100 Subject: [PATCH] Move some technical info into the doc page instread of about --- lib/Vroom/I18N/en.pm | 24 ---------------------- lib/Vroom/I18N/fr.pm | 35 --------------------------------- templates/default/about.html.ep | 24 ---------------------- templates/default/documentation.html.ep | 20 +++++++++++++++++++ 4 files changed, 20 insertions(+), 83 deletions(-) diff --git a/lib/Vroom/I18N/en.pm b/lib/Vroom/I18N/en.pm index ce30134..329f14c 100644 --- a/lib/Vroom/I18N/en.pm +++ b/lib/Vroom/I18N/en.pm @@ -307,30 +307,6 @@ our %Lexicon = ( "
  • A web browser
  • " . "" . "*: except iPad and iPhone", - "HOW_IT_WORKS" => "How it works ?", - "ABOUT_HOW_IT_WORKS" => "WebRTC allows browsers to browsers direct connections. This allows the best latency " . - "as it avoids round trip through a server, which is important with real time communications. " . - "But it also ensures the privacy of your communications.", - "SERVERLESS" => "Serverless, really ?", - "ABOUT_SERVERLESS" => "We're talking about peer to peer, but, in reality, a server is still needed somewhere" . - "In WebRTC applications, server fulfil several roles: " . - "
      " . - "
    1. A meeting point: lets clients exchange each other the needed information to establish peer to peers connections
    2. " . - "
    3. Provides the client! you don't have anything to install, but your browser still need to download a few scripts" . - " (the core is written in JavaScript)
    4. " . - "
    5. Signaling: some data without any confidential or private meaning are sent through " . - " what we call the signaling channel. This channel is routed through a server. However, " . - " this channel doesn't transport any sensible information. It's used for example to " . - " sync colors between peers, notify when someone join the room, when someone mute his mic " . - " or when the rooom is locked
    6. " . - "
    7. NAT traversal helper: the ICE " . - " mechanism is used to allow clients behind a NAT router to establish their connections. " . - " As long as possible, channels through which sensible informations are sent (called data channels) " . - " are established peer to peer, but in some situations, this is not possible. A " . - "TURN server is used to relay data. " . - " But even in those cases, the server only relays ciphered packets, and has no access to the data " . - " so confidentiality is not compromised (only latency will be affected)
    8. ". - "
    ", "WHO_IS_BEHIND_VROOM" => "Who's behind VROOM ?", "ABOUT_WHO_IS_BEHIND_VROOM" => "VROOM started as a simple personal project, developped by a single person " . "(Daniel Berteaud) on my spare time. This project wouldn't be that far without my employer " . diff --git a/lib/Vroom/I18N/fr.pm b/lib/Vroom/I18N/fr.pm index 85ff885..7d95fd8 100644 --- a/lib/Vroom/I18N/fr.pm +++ b/lib/Vroom/I18N/fr.pm @@ -325,41 +325,6 @@ our %Lexicon = ( "
  • Un navigateur web moderne
  • " . "" . "*: exceptés ipad et iphone", - "HOW_IT_WORKS" => "Comment ça marche ?", - "ABOUT_HOW_IT_WORKS" => "WebRTC permet d'établir des connexions directement entre les navigateurs " . - "des participants. Cela permet d'une part d'offrir la meilleur latence possible ". - "en évitant les allés-retours avec un serveur, ce qui est toujours important " . - "lors de communications en temps réel. D'autre part, cela permet aussi de " . - "garantir la confidentialité de vos communications.", - "SERVERLESS" => "Aucun serveur, vraiment ?", - "ABOUT_SERVERLESS" => "On parle de pair à pair depuis tout à l'heure. En réalité, vous avez toujours " . - "besoin d'un serveur quelque part. Dans les applications WebRTC, le serveur " . - "remplis plusieurs rôles:" . - "
      " . - "
    1. Le point de rendez-vous: permet à tous les participants de se " . - " retrouver et de s'échanger les informations nécessaires pour " . - " établir les connexions en direct
    2. " . - "
    3. Le client: il n'y a rien à installer sur le poste, mais votre navigateur " . - " doit cependant télécharger un ensembles de scripts (la majorité étant du " . - " JavaScript)
    4. " . - "
    5. Le signalement: certaines données sans caractère confidentiel transitent " . - " par ce qu'on appel le canal de signalement. Ce canal passe par un serveur. " . - " Cependant, ce canal ne transmet aucune information personnelle ou sensible. Il " . - " est par exemple utilisé pour synchroniser les couleurs associées à chaque " . - " participant, quand un nouveau participant arrive, quelqu'un coupe son micro " . - " ou encore verrouille le salon
    6. " . - "
    7. Aide aux contournements du NAT: le mechanisme " . - "ICE " . - " est utilisé pour permettre aux clients derrière un NAT d'établir leurs connexions. " . - " Tant que c'est possible, les cannaux par lesquels les données sensibles transitent " . - " (appelés canaux de données) sont établis en direct, cependant, dans certaines " . - " situations, celà n'est pas possible. Un serveur " . - "TURN " . - " est utilisé pour relayer les données. Même dans ces situations, le serveur " . - " n'a pas accès aux données, il ne fait que relayer des trames " . - " chiffrées parfaitement inintelligibles, la confidentialité des communications " . - " n'est donc pas compromise (la latence sera par contre affectée)
    8. ". - "
    ", "WHO_IS_BEHIND_VROOM" => "Qui développe VROOM ?", "ABOUT_WHO_IS_BEHIND_VROOM" => "VROOM a démarré comme un simple projet personnel, développé par une seule personne " . "(Daniel Berteaud) sur mon temps libre. Ce projet n'en serait pas " . diff --git a/templates/default/about.html.ep b/templates/default/about.html.ep index c08a072..0fbda21 100644 --- a/templates/default/about.html.ep +++ b/templates/default/about.html.ep @@ -14,30 +14,6 @@

    -
    -
    -

    - <%=l 'HOW_IT_WORKS' %> -

    -
    -
    -

    - <%==l 'ABOUT_HOW_IT_WORKS' %> -

    -
    -
    -
    -
    -

    - <%=l 'SERVERLESS' %> -

    -
    -
    -

    - <%==l 'ABOUT_SERVERLESS' %> -

    -
    -
    <% if ($config->{'interface.demo'}){ %>
    diff --git a/templates/default/documentation.html.ep b/templates/default/documentation.html.ep index 72db4e8..bb69f8c 100644 --- a/templates/default/documentation.html.ep +++ b/templates/default/documentation.html.ep @@ -53,6 +53,26 @@

    +

    + How it works +

    +

    + WebRTC allows browsers to browsers direct connections. This allows the best latency as it avoids round trip through a server, + which is important with real time communications. But it also ensures the privacy of your communications. VROOM takes advantage of those + new WebRTC technologies, and does the following: +

      +
    • When a client joins a room, it establishes a Websocket link to VROOM. This is called the signaling channel. With this, all peers are able + to exchange small messages between them. But messages sent through this channels is routed through VROOM server, so it's not yet peer to peer
    • +
    • When a second peer joins the same room, he get through this signaling channel informations about how to connedct directly to the other one
    • * +
    • Now, both peer exchange their video and audio stream directly
    • +
    • The signaling channel stays open and is used to transmit non sensitive informations (peer colors synchronization, notification of muting/kicking etc...)
    • +
    • Everything else (audio/video/text chat) is sent through data channels +
    +

    +
    + As long as possible, data channels are established directly between peers, but in some situations, this is not possible. In those case + data streams are relayed through a TURN server +

    Install your own VROOM instance