遵循此文档 https://github.com/mcollina/mosca/wiki/MQTT-over-Websockets
我在我的localhost中设置了代理,如
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 service mosquitto stop
答案 0 :(得分:2)
这显示正在您的计算机上侦听的当前套接字:
sudo netstat -ltn
如果有人正在倾听,你会看到类似下面的内容。
tcp 0 0 0.0.0.0:1884 0.0.0.0:* LISTEN
如果LISTEN
被TIME_WAIT
替换,那么mosca中可能存在一个错误,它不允许它重复使用尚未超时的侦听套接字。我认为这不太可能。
要使用端口查找进程,您可以使用lsof
:
sudo lsof -i TCP:1884
这将通过运行sudo lsof -i TCP:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 3878 root 3u IPv4 4505 0t0 TCP *:ssh (LISTEN)
答案 1 :(得分:1)
它可能不是持有套接字的节点进程
尝试运行sudo lsof -i :1884
以查看它可能是我的过程。
您是否尝试将端口号更改为1884以外的其他值以查看它是否有效。