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以外的其他值,以查看它是否有效