2017-12-14 5 views
0

저는 회사의 내부 네트워크에서 간단한 2 피어 비디오 킷을 구현하려고합니다. 필자는 클라이언트 측 코드를 작성했으며 작동합니다 : peerjs API 키를 사용하여 peerjs에 연결하면 연결이 올바르게 설정됩니다. 그러나 문제가 있습니다. 비디오 스트림은 매우 느립니다 (때로는 완전히 동결 됨). 내가 연결하고있는 무료 피어 서버가 너무 약하기 때문에 이것이 내가 직접 호스팅하려고하기 때문에 이것이라고 생각합니다.자체 호스트 피어 서버를 작동시킬 수 없습니다

나는 모든 방법을 시도하고 깊이 보았지만 도움을 구하지 못했습니다. 나는 익스프레스와 결합 시키거나 PeerServer를 만들려고 노력했다. 지침은 https://github.com/peers/peerjs-server에있다. 나는 간단한 'npm 설치 피어'를 시도한 다음 'peerjs --port 9000'을 시도했다. 나는 영웅과 함께 노력했다. 모든 포트, 경로 및 코드 조각을 시도했지만 시도 할 수는 없습니다. 또한, 나는 기꺼이 peerj에 대해 많은 것을 이해하게되었지만 여전히 운이 없다.

피어 서버를 성공적으로 실행 한 사람이 내가 잘못된 위치를 설명해 줄 수 있습니까? 여기

내 클라이언트 측 최소한의 코드입니다 (주석 라인은 내가 성공하지 해봤 선입니다) :

var name = prompt('What's your name?'); 

var peer = new Peer(name, { 
    host: 'https://videodesk-ennesimo.herokuapp.com/', 
    port: 9000, 
    //key: 'peerjs', 
    //path: '/peerjs', 
    //secure: true 
}); 

peer.on('open', function(name){ 
    alert(name + ' connected'); 
}); 

모든 것이

var peer = new Peer(name, { key: 'mypeerjsfreeapikey' }); 

와 함께 잘 작동하지만, 같은 전에 말했듯이, 그것은이다 거의 얼어 붙었다. 당신은 예를 들어 있습니다 내 피어 서버가 I이 만든 https://videodesk-ennesimo.herokuapp.com/

다른 시도에서 실행 확인할 수 있습니다

var express = require('express'); 
var app = express(); 
var ExpressPeerServer = require('peer').ExpressPeerServer; 

var options = { 
    debug: true, 
    allow_discovery: true 
} 

var server = require('http').createServer(app); 

app.use('/peerjs', ExpressPeerServer(server, options)); 
server.listen(9000, 'localhost'); 

클라이언트 측 코드에 대한 이후의 변경과 함께.

클라이언트 쪽이 express로 만든 node.js 앱이고, Chrome에서 안전하지 않은 연결에서 웹캠을 허용하지 않기 때문에 자체 서명 된 SSL 인증서를 사용하고 있다는 것을 강조해야합니다.

도움이 될 것입니다. 나는 지난 주 이래 붙어있어 더 이상 시간을 낭비 할 수 없다. 또한 나는 더 이상 무엇을 시도해야할지 모른다. 또한 peerjs 대신 사용할 수있는 대안이 유용 할 것입니다.

대단히 감사합니다!

답변

1

카를로,

우선 스택 오버플로에 오신 것을 환영합니다.

Peerjs는 연결을 설정하는 동안에만 필요하며 이후 화상 통화에 참여할 수 없으므로 취약한 서버라는 주장이 옳지 않습니다.

두 대의 컴퓨터를 연결해야하는 경우 연결하는 방법을 알아야합니다. 이것은 peerjs가하는 것입니다. 가능한 IP 주소/포트 조합을 살펴 봅니다. 일반적으로 클라우드에 있기 때문에 일반적으로 서로 연결할 수없는 방화벽 뒤의 컴퓨터를 연결할 수 있습니다.

LAN에 연결하는 경우 LAN에서 peerjs 서버를 실행할 수 있으며 제대로 작동합니다. 하지만 그건 문제가 아닙니다. 뭔가 동영상 성능 문제를 일으키고 있습니다. 어쩌면 어떻게 든 스트림을 어떻게 든 조절하고 있습니다.

두 대의 컴퓨터를 같은 라우터에 배치하거나 개인 네트워크를 만들어보십시오. 이것은 peerj가 문제가 아니라는 것을 당신에게 확신시킵니다. 그러면 왜 비디오 성능이 좋지 않은지 문제를 해결할 수 있습니다.

관련 문제