节点 js 端口已被使用
Node js port is already in use
当我启动我的网络服务器时,节点抛出 listen EADDRINUSE: address already in use :::3000
,我尝试使用 netstat 并搜索 3000 端口(或另一个,它发生在任何端口),但没有找到。任务管理器中也没有节点进程,localhost:3000
上没有网页。我也尝试重新加载 windows,但没有任何改变。
假设您使用的是 Windows 10,我建议您尝试使用资源监视器。 Network 选项卡有一个名为 Listening Ports 的视图,它应该告诉您哪个进程正在使用端口 3000
Resource Monitor
根据您的代码,您正试图将套接字模块绑定到端口 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 文档)
当我启动我的网络服务器时,节点抛出 listen EADDRINUSE: address already in use :::3000
,我尝试使用 netstat 并搜索 3000 端口(或另一个,它发生在任何端口),但没有找到。任务管理器中也没有节点进程,localhost:3000
上没有网页。我也尝试重新加载 windows,但没有任何改变。
假设您使用的是 Windows 10,我建议您尝试使用资源监视器。 Network 选项卡有一个名为 Listening Ports 的视图,它应该告诉您哪个进程正在使用端口 3000
Resource Monitor
根据您的代码,您正试图将套接字模块绑定到端口 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 文档)