2016-04-29 46 views
1

我流使用Debian傑西,阿帕奇,Node.js和受Binary.js一個mp3文件,它的工作原理採用http://ws://,但我不能讓它工作使用https://wss:// ...服務器啓動,但是我得到這個錯誤在瀏覽器:安全使用的WebSocket的node.js和binary.js

WebSocket連接到 'WSS://192.168.0.14:9000 /' 失敗:錯誤 連接建立:網:: ERR_CONNECTION_CLOSED

這就是我想:

index.js

var https = require('https'); 
var fs = require('fs'); 

var hskey = fs.readFileSync('/etc/ssl/private/ssl-cert-snakeoil.key'); 
var hscert = fs.readFileSync('/etc/ssl/certs/ssl-cert-snakeoil.pem') 

var options = { 
    key: hskey, 
    cert: hscert 
}; 

httpsServer = https.createServer(options, function (req, res) { 
    res.writeHead(200); 
    res.end("Hi from HTTPS"); 
}).listen(8080); 


var BinaryServer = require('/home/john/node_modules/binaryjs').BinaryServer; 

var server = BinaryServer({ 
    port: 9000, 
    server: httpsServer 
}); 

// callback function 
server.on('connection', function(client) { 
    var file = fs.createReadStream('/var/www/html/mp3/audio.mp3'); 
    client.send(file); 
}); 

的index.html

<!doctype html> 
<html> 
    <head> 
     <title>Stream audio</title> 
     <meta charset="utf-8"> 
     <script src="https://cdn.jsdelivr.net/binaryjs/0.2.1/binary.min.js"></script> 
     <script> 
     var client = new BinaryClient('wss://192.168.0.14:9000'); 

     client.on('stream', function(stream, meta){ 

      var parts = []; 

      stream.on('data', function(data){ 
       parts.push(data); 
      }); 

      stream.on('end', function(){ 
       var music = document.createElement('audio'); 
       music.src = (window.URL || window.webkitURL).createObjectURL(new Blob(parts)); 
       music.controls = 'controls'; 
       music.preload = ''; 
       document.body.appendChild(music); 
      }); 

     }); 
     </script> 
    </head> 


    <body> 



    </body> 
</html> 

回答

0

簡單地終止與Nginx的代理的SSL,並通過所有要求後端的NodeJS。

這是Nginx的配置片斷:

 location /ws { 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_redirect off; 
     proxy_pass http://127.0.0.1:9000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_buffers 8 32k; 
     proxy_buffer_size 64k; 
     break; 
    } 
+0

我使用的Apache – neoDev

+0

我怎樣才能爲Apache做到這一點? – neoDev