Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [Problema] WebRTC

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    residenza
    Roma
    Messaggi
    19

    [Problema] WebRTC

    Ciao a tutti. come nell'articolo descritto qui su html.it. sto cercando da giorni di far funzionare sto maledetto script.
    Ho trovato non poche difficoltà nell'installazione dei gem necessari per avviare il server in ruby.
    Comunque. dopo svariati tentativi sono riuscito a configurare ruby, avviare il server (cosa confermata dal firewall che mi ha chiesto di abilitare o no l'accesso.
    Ho creato i 2 file (client) index.html e application.js in una cartella "js".
    per scrupolo ho messo i file (anche se non penso sia necessario... smentitemi in tal caso) sotto apache.... risultato... niente di niente... ho cercato in 1000 modi... volevo avviare questo script proprio per iniziare a smanettare con queste funzionalità.... non appare nulla... non appare neachè la finestrella per accettare la condivisione di webcam e microfono... qualcuno può aiutarmi?? grazieeeee

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Senza ulteriori elementi la tua descrizione non fornisce sufficienti elementi per verificare il tuo operato... non hai postato una sola riga di codice: cosa abbiamo da visualizzare?

    Posta un link alla pagina pubblicata.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    residenza
    Roma
    Messaggi
    19
    Chiedo scusa. Davo per scontato dato che l'articolo riguardante webrtc è uno solo
    http://www.html.it/articoli/webrtc-c...me-per-il-web/

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Perdona, non ci puoi chiedere di replicare cio' che hai fatto tu... magari a noi funziona ed in ogni caso non saremmo in grado di fornirti aiuto.

    Posta un link alla TUA pagina.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2014
    residenza
    Roma
    Messaggi
    19
    Ma io lo sto testando in remoto. I file sono lì stessi identici che trovi lì. Palesemente copiati e incollati. Ovvero lo script ruby per il server.
    una pagina html e un file javascript.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2014
    residenza
    Roma
    Messaggi
    19
    index.html
    codice:
    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Una semplice video chat p2p</title>
      </head>
      <body>
     
        <video width="300" id="video_locale" autoplay="autoplay"></video>
        <video width="300" id="video_remoto" autoplay="autoplay"></video>
     
        
        <script src="javascript/application2.js"></script>
      </body>
    </html>
    js/application.js
    codice:
    // --- gestione del prefisso sperimentale ---
    window.RTCPeerConnection = window.webkitRTCPeerConnection;
    navigator.getUserMedia = navigator.webkitGetUserMedia ;
    window.URL = window.URL || window.webkitURL;
     
    // --- variabili iniziali ---
    var video_locale = document.getElementById("video_locale"),
        video_remoto = document.getElementById("video_remoto"),
        ws = new WebSocket('ws://__IP_SERVER_WEBSOCKET__:8080'),
        peer;
     
    if(location.hash === ""){
      // in questo caso l'URL non contiene la chiave e devo crearne una
      var stanza = Math.round(Math.random()*1000),
          chiamante = 0;
      location.hash = stanza;
    }else{
      // in questo caso l'URL contiene già la chiave
      var stanza = location.hash.substr(1),
          chiamante = 1;
    }
     
    // --- init dall'applicazione all'apertura del canale websocket ---
    ws.addEventListener('open', function(){ 
      // invio al server websocket l'identificativo del canale di 
      // comunicazione al quale mi voglio connettere.
      ws.send("c:" + stanza);
      inizializza_video();  // dobbiamo ancora scrivere questa funzione.
    }, false);
    
    
    // --- configurazione --- 
    var mediaConstraints = {'mandatory': {'OfferToReceiveAudio':true, 'OfferToReceiveVideo':true }};
    var peer_config = {"iceServers": [{"url": "stun:stunserver.org"}]};
     
    // --- richiesta accesso webcam e microfono e init della connessione P2P ---
    function inizializza_video() {
      navigator.getUserMedia( {'audio':true, 'video':true}, 
        function(stream) {
     
          video_locale.src = URL.createObjectURL(stream);
          peer = new RTCPeerConnection(peer_config);
          peer.onicecandidate = onIceCandidate;
          peer.onaddstream = function(event){
            video_remoto.src = URL.createObjectURL(event.stream);
          };
     
          peer.addStream(stream);
          if (chiamante)
            peer.createOffer(sdpcreato, null, mediaConstraints);
        }
      );
    }
    
    
    // --- invio l'SDP al peer ---
    function sdpcreato(sdp) {
      peer.setLocalDescription(sdp);
      messaggio_da_inviare(sdp);
    }
     
    // --- invio il candidato ICE al peer ---
    function onIceCandidate(event) {
      if (event.candidate) {
        messaggio_da_inviare(event.candidate);
      } 
    }
    
    
    // --- invio messaggi al websocket ---
    function messaggio_da_inviare(msg) {
      var msgjson = JSON.stringify(msg);
      ws.send("m:"+ stanza + ":" + chiamante + ":" + msgjson);
    }
    
    
    // --- ricezione messaggi dal websocket ---
    ws.addEventListener('message', function(evt){
      var msg = evt.data;
      if(parseInt(msg.substr(0,1),10) !== chiamante){
        processa(msg.substr(2));
      }
    });  
     
    // --- interpretazione dei messaggi ricevuti per stabilire la connessione P2P ---
    function processa(messaggio) {
      var msg = JSON.parse(messaggio);
      if (msg.type === 'offer') {
        peer.setRemoteDescription(new RTCSessionDescription(msg));
        peer.createAnswer(sdpcreato, null, mediaConstraints);
      } else if (msg.type === 'answer') {
        peer.setRemoteDescription(new RTCSessionDescription(msg));
      } else {
        var candidate = new RTCIceCandidate(msg);
        peer.addIceCandidate(candidate);
      }
    }
    RUBY - webserver.rb
    codice:
    require 'rubygems'
    require 'em-websocket'
     
    EventMachine.run do
        @channels = {}
         
        EventMachine::WebSocket.start(
          :host => "127.0.0.1", :port => 8080) do |ws|     
     
          ws.onmessage do |msg|
            command, params = msg.split(":",2)
            if(command == "c")
              @channels[msg[2..-1]] ||= EM::Channel.new 
              @channels[msg[2..-1]].subscribe{ |msg| ws.send msg }
            else
              room, message = params.split(":",2)
              @channels[room].push message
            end
          end  
        end
         
    end
    Ultima modifica di Vale9110; 10-07-2014 a 21:46

  7. #7
    Ciao,

    anche io ho il tuo stesso problema hai risolto?

    io ho installato come media server kurento: http://www.kurento.org/docs/6.0.0/in...ion_guide.html

    la terza riga dello script js
    ws = new WebSocket('ws://__IP_SERVER_WEBSOCKET__:8080'),
    l'ho modificata con l'ip e la porta del mio webserver:
    ws = new WebSocket('ws://192.168.1.100:8888'),
    ma quando provo a collegarmi alla pagina index.html mi da il seguente errore:
    TypeError: navigator.getUserMedia is not a function
    navigator.getUserMedia( {'audio':true, 'video':true},
    mi fai sapere se hai risolto?

    Grazie mille.

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Spero per te che possa trovare qualche aiuto... ma l'utente che invochi e' piu' di un anno che non frequenta, anche per questo, come da regolamento, non e' permesso riesumare discussioni vecchie.

    Vabbe', per stavolta passi
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Avete risolto?

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Quote Originariamente inviata da iJim Visualizza il messaggio
    Avete risolto?
    Esistono i messaggio pèrivati ed esiste il regolamento
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.