将端口更改为https时,为什么节点js套接字不起作用?

时间:2018-05-02 12:30:28

标签: node.js websocket socket.io protocols

通常在app.js我在端口3000上使用此代码,它的工作正常(在my-domain.com:3000上)。

http.listen(3000, function(){
    console.log('start server on port :3000');
});

然后我想在https上使用,所以我将app.js更改为

http.listen(443, function(){
    console.log('start server on port :443');
});

运行node app.js时,显示错误

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

Error: listen EADDRINUSE :::443
    at Object.exports._errnoException (util.js:1012:11)
    at exports._exceptionWithHostPort (util.js:1035:20)
    at Server._listen2 (net.js:1252:14)
    at listen (net.js:1288:10)
    at Server.listen (net.js:1384:5)
    at Object.<anonymous> (/home/admin/web/my-domain.com/public_html/app.js:28:6)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)

通常我必须访问my-domain.com:3000才能进行用户聊天。所以我想知道如何才能访问https://www.my-domain.com进行用户聊天?

1 个答案:

答案 0 :(得分:2)

您有以下错误消息:

Error: listen EADDRINUSE :::443
[...]

此消息表示某个进程当前正在使用端口443。

您可以通过执行许多网络检查工具之一来检查实际使用所述端口的进程(例如Windows的netstat,Linux上的lsofnetstat

请参阅手册以获取基于您的操作系统获得正确结果的工具。