我正在尝试使用 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>
当我尝试使用 Node 运行 app.js 时
node server.js
我遇到了错误
warn - error raised: Error: listen EADDRINUSE
我尝试重新启动所有但它不起作用
请告诉我我做错了什么。
最佳答案
这意味着您尝试绑定(bind)服务器的地址正在使用中。这样做;
Command:
ps -eaf|grep node
Output:
root 28029 27332 0 14:25 pts/2 00:00:03 node myVNC.js
这向您显示 Node 正在运行的进程 ID,在本例中为“28029”
现在杀死这个进程id使用;
kill -9 28029
关于javascript - Nodejs 和套接字 io 错误 : listen EADDRINUSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20841529/