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/easyrtcGrupos do Google:
https://groups.google.com/d/forum/easyrtc