【发布时间】:2017-08-21 16:06:17
【问题描述】:
我正在尝试使用 webRTC 将音频从客户端流式传输到 Node.js。
问题是:webRTC 不适用于 HTTP,只能用于 HTTPS。所以 - 我的 IIS 正在使用这个端口。我尝试建立我的 Node.js 来监听 443 端口:
第一次尝试:使用 https.createServer,通过端口 9001:
Node.JS 脚本:
var options = {
key: fs.readFileSync('../cert/key.pem'),
cert: fs.readFileSync('../cert/server.crt')
};
var httpsserver = https.createServer(options).listen(443);
var server = binaryServer({ server: httpsserver, port: 443 });
客户端脚本:
client = new BinaryClient('ws://example.com:443');
我的节点脚本中出现此错误,所以我的第一个问题是:这是因为我的 IIS 正在使用端口 443?
投掷者; // 未处理的“错误”事件 ^
错误:在 Object.exports._errnoException 处监听 EACCES 0.0.0.0:443 (util.js:1018:11) 在exports._exceptionWithHostPort (util.js:1041:20) 在 Server._listen2 (net.js:1249:19)
遇到此错误,我尝试使用不同的端口 (9001)。
第二次尝试:使用 https.createServer,通过端口 9001:
客户端脚本:
client = new BinaryClient('ws://example.com:9001');
当我尝试从客户端连接到 9001 上的 node.js 服务器时,因为站点地址是 https://example.com,我在 客户端 中收到此错误:
混合内容:页面位于 'https://example.com/page.aspx' 已通过 HTTPS 加载,但尝试连接到不安全的 WebSocket 端点 'ws://example.com:9001/'。该请求已 受阻;此端点必须在 WSS 上可用。
因为错误提到使用wss://,所以我尝试了以下。
第三次尝试:使用 WSS://,通过端口 9001:
所以,我将客户端切换到WSS://,
client = new BinaryClient('wss://example.com:9001');
然后,在 客户端 中,我收到此错误:
到“wss://example.com:9001/”的 WebSocket 连接失败:错误 连接建立:net::ERR_CONNECTION_CLOSED
假设我的 IIS 使用端口 443,我如何在 srcure 端口上运行我的 node.js 服务器,并且仍然能够安全地连接到客户端并使用 webRTC?
【问题讨论】:
标签: node.js https streaming webrtc