WebSocket上的MQTT错误:侦听EADDRINUSE
遵循本文件 我在本地主机中设置了代理,就像WebSocket上的MQTT错误:侦听EADDRINUSE,mqtt,Mqtt,遵循本文件 我在本地主机中设置了代理,就像 var settings = { http: { port: 1884, bundle: true, static: './' } }; //here we start mosca var server = new mosca.Server(settings); 但是当我跑的时候 节点代理 我犯了一个可怕的错误 events.js:85 throw er; // Unhandled 'error' ev
var settings = {
http: {
port: 1884,
bundle: true,
static: './'
}
};
//here we start mosca
var server = new mosca.Server(settings);
但是当我跑的时候
节点代理
我犯了一个可怕的错误
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (util.js:746:11)
at Server._listen2 (net.js:1146:14)
at listen (net.js:1172:10)
at net.js:1270:9
at dns.js:85:18
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)
at node.js:814:3
检查我是否有其他流程
ps -ax | grep node
5266 pts/2 R+ 0:00 grep --colour=auto node
kill -9 5266
bash: kill: (5266) - No such process
你知道有什么问题吗
更新
感谢@hardillb和@ralight
我和他一起解决的
sudo lsof -i TCP:1883
如果真的有那么简单
跑
这将显示计算机上正在侦听的当前套接字:
sudo netstat -ltn
如果有人在听,你可能会看到下面这样的画面
tcp 0 0 0.0.0.0:1884 0.0.0.0:* LISTEN
如果将LISTEN
替换为TIME\u WAIT
,则mosca中可能存在一个错误,它不允许重新使用未超时的侦听套接字。但我认为这不太可能
要查找使用端口的进程,可以使用lsof
:
sudo lsof -i TCP:1884
这将给出一个类似下面示例的输出,我通过运行sudolsof-itcp:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 3878 root 3u IPv4 4505 0t0 TCP *:ssh (LISTEN)
这将显示计算机上正在侦听的当前套接字:
sudo netstat -ltn
如果有人在听,你可能会看到下面这样的画面
tcp 0 0 0.0.0.0:1884 0.0.0.0:* LISTEN
如果将LISTEN
替换为TIME\u WAIT
,则mosca中可能存在一个错误,它不允许重新使用未超时的侦听套接字。但我认为这不太可能
要查找使用端口的进程,可以使用lsof
:
sudo lsof -i TCP:1884
这将给出一个类似下面示例的输出,我通过运行sudolsof-itcp:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 3878 root 3u IPv4 4505 0t0 TCP *:ssh (LISTEN)
这将显示计算机上正在侦听的当前套接字:
sudo netstat -ltn
如果有人在听,你可能会看到下面这样的画面
tcp 0 0 0.0.0.0:1884 0.0.0.0:* LISTEN
如果将LISTEN
替换为TIME\u WAIT
,则mosca中可能存在一个错误,它不允许重新使用未超时的侦听套接字。但我认为这不太可能
要查找使用端口的进程,可以使用lsof
:
sudo lsof -i TCP:1884
这将给出一个类似下面示例的输出,我通过运行sudolsof-itcp:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 3878 root 3u IPv4 4505 0t0 TCP *:ssh (LISTEN)
这将显示计算机上正在侦听的当前套接字:
sudo netstat -ltn
如果有人在听,你可能会看到下面这样的画面
tcp 0 0 0.0.0.0:1884 0.0.0.0:* LISTEN
如果将LISTEN
替换为TIME\u WAIT
,则mosca中可能存在一个错误,它不允许重新使用未超时的侦听套接字。但我认为这不太可能
要查找使用端口的进程,可以使用lsof
:
sudo lsof -i TCP:1884
这将给出一个类似下面示例的输出,我通过运行sudolsof-itcp:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 3878 root 3u IPv4 4505 0t0 TCP *:ssh (LISTEN)
可能不是保存套接字的节点进程 试着运行
sudolsof-i:1884
,看看它会给我带来什么进程
您还尝试过将端口号更改为1884以外的其他端口号,以查看它是否有效。可能不是一个节点进程持有套接字 试着运行
sudolsof-i:1884
,看看它会给我带来什么进程
您还尝试过将端口号更改为1884以外的其他端口号,以查看它是否有效。可能不是一个节点进程持有套接字 试着运行
sudolsof-i:1884
,看看它会给我带来什么进程
您还尝试过将端口号更改为1884以外的其他端口号,以查看它是否有效。可能不是一个节点进程持有套接字 试着运行
sudolsof-i:1884
,看看它会给我带来什么进程
您还尝试过将端口号更改为1884以外的其他值,以查看它是否有效