当我启动Web服务器时,节点抛出listen EADDRINUSE: address already in use :::3000
,我尝试使用netstat并搜索3000端口(或其他端口,发生在任何端口上),但未找到任何内容。另外,任务管理器中没有节点进程,localhost:3000
上也没有网页。我也尝试重新加载Windows,但没有任何改变。
答案 0 :(得分:0)
假设您使用的是Windows 10,建议您尝试使用Resource Monitor。 “网络”选项卡上有一个名为“侦听端口”的视图,该视图应告诉您哪个进程正在使用端口3000
答案 1 :(得分:0)
您正在从代码中尝试将套接字模块绑定到端口3000:
var io = require('socket.io')(3000);
/* ... */
app.listen(3000);
以这种方式,当服务器尝试绑定自身时,端口已为in use
。
您必须创建HTTP服务器,然后在其上绑定socket.io模块:
const app = require('express')();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', () => { /* … */ });
server.listen(3000);
(摘自socket.io文档)