Nodejs&套接字io错误:听EADDRINUSE
我正在尝试与Node.js和socket.io进行聊天
现在,这里是我使用Ubuntu 12.04用户,我有桌面上的文件夹PP
里面,我把服务器文件server.js
这里是客户端:
$(document).ready(function() { var urlServer = location.origin + ':8081'; var socket = io.connect(urlServer); }); $(document).ready(function() { var urlServer = location.origin + ':8081'; var socket = io.connect(urlServer); $("#boton").on('click', function() { var mensaje = $("#mensaje").val(); socket.emit("mensaje", {msg: mensaje}); }); socket.on("mensaje", function(msg) { console.log("hemos recibido un mensaje", msg); }); });
在这里的服务器
var server = require('http').createServer(), sio = require('socket.io'), port = 8081; server.listen(port); var io = sio.listen(server, { log:true }); var channels = {}; io.sockets.on('connection', function (socket) { console.log("Cliente conectado"); socket.on('mensaje', function (msg) { console.log(msg); socket.broadcast.emit('mensaje', msg); }); }); console.log('1- Escuchando en http://localhost:' + port , ""); console.log("");
现在在同一个文件夹中我有一个html文件
<!DOCTYPE html> <html> <head> <script src="../jquery.js"></script> <script src="../node_modules/socket.io/node_modules/socket.io-client/dist/socket.io"></script> <script src="clientechat.js.js"></script> <title>Chat con Node</title> </head> <body> <div id="mensajes"></div> <input type="text"> <input type="submit" id="boton"> </body> </html>
当我试图运行app.js使用节点
node server.js
我收到错误
warn - error raised: Error: listen EADDRINUSE
我尝试重新启动所有,但它不起作用
请告诉我,我在做什么错了。
如果根本无法启动应用程序,则可能有一个已在使用给定端口的应用程序。 另一个select是尝试使用另一个端口,看看是否可以启动它。
检查@Faisal Ameers回答linux命令find使用端口的程序。
检查这个职位,find使用Windows上的端口程序: https : //stackoverflow.com/a/48199/1958344
而这一个OS X的: https : //stackoverflow.com/a/30029855/1958344
这意味着您尝试绑定服务器的地址正在使用中。 做这个;
Command: ps -eaf|grep node Output: root 28029 27332 0 14:25 pts/2 00:00:03 node myVNC.js
这显示了你正在运行节点的进程ID,在这个例子中是“28029”
现在杀死这个进程ID使用;
kill -9 28029
杀死服务器并用kill.sh文件重新启动的最好方法
也许是因为你正在调用listen(port)
两次。 第二个listen()可能会抛出EADDRINUSE,因为第一个listen()已经在使用该端口了。
server.listen(port); var io = sio.listen(server, { log:true });
它看起来像你的服务器设置是不正确的。 看看这个例子,你可以一起使用你的HTTP服务器的socket.io:Nodejs& 套接口io:警告 – 错误引发:错误:听EADDRINUSE