Nodejs HTTP和HTTPS通过相同的端口,代码不清楚

时间:2018-11-23 07:46:12

标签: node.js http ssl https http-redirect

我正在通过同一端口上的 Nodejs HTTP和HTTPS遍历这段代码 链接=> https://stackoverflow.com/a/23975955

现在,在代码中,我无法弄清楚代理在那里的工作方式

function tcpConnection(conn) {
    conn.once('data', function (buf) {
        // A TLS handshake record starts with byte 22.
        var address = (buf[0] === 22) ? httpsAddress : redirectAddress;
        var proxy = net.createConnection(address, function () {
            proxy.write(buf);
            conn.pipe(proxy).pipe(conn);
        });
    });
}

我可以理解https服务器位于3002上,而http服务器位于3001上。但是,当变量 address 具有 redirectAddress 时,它将buff通过管道传输到端口上的新连接中redirectaddress 。然后如何转移到https?

我的意思是端口3000转移到3001和3002。但是3001如何转移到3002?是因为这部分是http重定向吗?

function httpConnection(req, res) {
    var host = req.headers['host'];
    res.writeHead(301, { "Location": "https://" + host + req.url });
    res.end();
}

我在Google上尝试过,但是却找不到我的疑问。

难道我们也不能减少端口数量吗?像这里使用了2个其他端口。

有时服务器也会无处终止,并且出现此错误

events.js:182
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at _errnoException (util.js:1026:11)
    at TCP.onread (net.js:606:25)

可能的原因是什么?

0 个答案:

没有答案