Nodejs websocket和https使用相同的端口

时间:2018-03-08 09:05:56

标签: node.js https websocket reverse-proxy

在嵌入式Linux机器中,我在Lighttpd网络服务器上运行了一个php restful api,它提供页面,图像和所有Angular.io应用程序包。 此Web服务器使用标准的https 443端口。

现在有了通知功能,我已经实现了一个NodeJs脚本(在同一台嵌入式计算机上运行),它使用不同的端口8181创建了一个安全的websocket侦听连接。

我的Angular.io应用程序,工作正常,并从websocket正确接收通知。 当我将嵌入式计算机放入公共网络时,websocket端口显然会被阻止,我无法接收来自8181的通知。

问题是,如何修改我的sctructure来处理这种情况? 我的节点脚本可以监听通知websocket的443标准端口,还可以管理请求和响应(对于页面,图像,js,css等等)到在不同本地端口运行的lightppd服务器吗?

var server = https.createServer({
    key: fs.readFileSync( '/etc/lighttpd/certs/lighttpd.pem' ),
    cert: fs.readFileSync( '/etc/lighttpd/certs/lighttpd.pem' )        
},
function(request, response) {
    /* can i pipe from here to internal lighttpd server port ?*/
});
server.listen(443, function() {
    console.log((new Date()) + ' Server is listening on port 443');
});

/* the websocket */
wsServer = new WebSocketServer({
    httpServer: server,        
    autoAcceptConnections: false
});

0 个答案:

没有答案