WebRTC - ainda mais fácil (EasyRTC)

Ainda não consegui superar o servidor de sinal ao escrever um bate-papo com vários usuários, então comecei a procurar estruturas prontas. O mais fácil de todos me pareceu o EasyRTC.

De acordo com as instruções, tudo é instalado de maneira muito simples, no Windows e no Linux:
1. Baixe e instale o Node.js.
2. No Github, baixamos o easyRTC, vamos para a pasta baixada.
3. Digitamos na instalação do npm do console (lembro-me no diretório da pasta easyRTC baixada) os pacotes necessários para o Node.js serão instalados
4. Também iniciamos o servidor no console: nó server.js.
Tudo !!! Agora, por padrão, no momento 8080 do seu servidor, são lançados exemplos de uso do easyRTC.
Para escrever seu próprio bate-papo, você precisa conectar socket.io.js e easyrtc.js na sua página. Ao usar o nginx, você pode "proxy" da seguinte maneira:
No arquivo de configuração:
 backendEasyRTC a montante {
		 servidor 127.0.0.1:9080;
     }
 Na seção do servidor:
 localização /socket.io {
                        #proxy_pass http: // 127.0.0.1:9080;
			 proxy_pass http: // backendEasyRTC;
			 proxy_http_version 1.1;
			 proxy_set_header Atualize $ http_upgrade;
			 proxy_set_header Conexão "atualização";
			 proxy_set_header Host $ host;
         }

Socket.io.js e easyrtc.js (que está localizado na pasta api) caem nas estatísticas, respectivamente.

Em seguida, você precisa configurar o easyRTC:

No arquivo easyrtc.js, altere easyRTC.webSocket para:
 easyRTC.webSocket = io.connect ('http: // seu servidor');

e no arquivo de configuração config.js (localizado no mesmo local que server.js) altere a porta padrão para a sua, no meu caso 9080:
 config.httpPort = 9080;


Na sua página, conecte os arquivos necessários
 <script src = "/ socket.io/socket.io.js"> </script>
 <script type = "text / javascript" src = "/ static / js / easyrtc.js"> </script>


Prescrever tags de vídeo:
Para usuários remotos
 <reprodução automática de vídeo = "reprodução automática" id = "remoteVideo1"> </video>
 <reprodução automática de vídeo = "reprodução automática" id = "remoteVideo2"> </video>

E para se mostrar
 <reprodução automática de vídeo = "reprodução automática" id = "localVideo" silenciado = "silenciado" volume = "0"> </video>


Iniciamos o easyRTC no início da página:
 var maxCALLERS = 3;  // Número de pessoas na sala
 window.onload - function () {
   easyRTC.setLoggedInListener (callEverybodyElse);  // Dispara quando um novo fluxo webrtc
   easyRTC.initManaged ("myroom", "localVideo", ["remoteVideo1", "remoteVideo2], loginSuccess);
 // myroom - o nome da sala onde os usuários estarão
 // localVideo - seu vídeo
  // ["remoteVideo1", "remoteVideo2] - onde gerar fluxos de usuários remotos. 
 // loginSuccess - nele você pode descobrir seu ID de stream
 }

 função loginSuccess (easyRTCId) {
     console.log ('Meu id' + easyRTCId);  // Útil para identificação adicional do usuário
 }

 função callEverybodyElse (otherPeople) {
             easyRTC.setLoggedInListener (null); 
             lista var = []; 
             var connectCount = 0;
    
             para (var i em otherPeople) { 
                 list.push (i);
             }
     // Por padrão, o novo fluxo é o último na matriz
             função EstablConnection (position) {
                 função callSuccess () {
                     connectCount ++;
                     if (connectCount <maxCALLERS && position> 0) {
                         estabeleçaConnection (posição 1);
                     }
                 }
                 função callFailure () {
                     easyRTC.showError ("CALL-REJECTED", "Rejeited by other party");
                     if (connectCount <maxCALLERS && position> 0) {
                         estabeleçaConnection (posição 1);
                     }            
                 }
                 easyRTC.call (lista [posição], callSuccess, callFailure);    
             }
             if (list.length> 0) { 
                 estabeleçaConnection (list.length-1); 
             }
         }


Além disso, você pode especificar a porta de conexão:
 easyRTC.setSocketUrl (": 9088");

Taxa de bits de vídeo:
 easyRTC.setVideoBandwidth (40);

Resolução de vídeo:
 easyRTC.setVideoDims (320,180);  - resolução de vídeo

Este é o mínimo necessário para o bate-papo com vários usuários.
Além disso, nos arquivos config.js easyrtc.js, bem como no Github e nos Grupos do Google.
Obrigado se você ler até o fim.

Website: http://www.easyrtc.com/
Github: https://github.com/priologic/easyrtc
Grupos do Google: https://groups.google.com/d/forum/easyrtc

Source: https://habr.com/ru/post/pt436928/


All Articles