Nodejs & socket io Error: écouter EADDRINUSE
Je suis en train d'essayer de faire un chat avec Node.js et de la prise.io
Maintenant voici mon scénario, je suis en utilisant ubuntu 12.04 utilisateur et j'ai un dossier pp sur le bureau
à l'intérieur que je me suis posée serveur de fichier server.js
Ici est le client:
$(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);
});
});
Et ici le serveur
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("");
Maintenant dans le même dossier que j'ai un fichier html comme
<!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>
lorsque j'essaie d'exécuter l'app.js utilisez le nœud comme
node server.js
J'obtiens l'erreur
warn - error raised: Error: listen EADDRINUSE
J'ai essayer de redémarrer tous, mais ça ne fonctionne pas
S'il vous plaît dites-moi ce que pourrais-je fais de mal.
OriginalL'auteur Ninjacu | 2013-12-30
Vous devez vous connecter pour publier un commentaire.
Si vous ne pouvez pas démarrer l'application à tout ce dont vous pourriez avoir une application qui utilise déjà le port donné. Une autre option est d'essayer et d'utiliser un autre port et voir si vous pouvez le démarrer.
Vérifiez @Fayçal Ameers réponse de commandes linux pour trouver le programme qui utilise le port.
Vérifier ce post pour trouver le programme utilise le port sur windows: https://stackoverflow.com/a/48199/1958344
Et ce un pour OS X:
https://stackoverflow.com/a/30029855/1958344
OriginalL'auteur Kristian Barrett
Cela signifie que l'adresse que vous essayez de lier le serveur est en cours d'utilisation. Ce faire;
Cela vous montre l'id de Processus où le noeud est en cours d'exécution, qui dans ce cas est "28029"
Maintenant tuer cet id de processus à l'aide;
OriginalL'auteur Faisal Ameer
meilleur moyen pour tuer le serveur et de le redémarrer avec un kill.sh fichier
kill -9
, ce qui est une mauvaise idée.OriginalL'auteur Allahbakash.G
Peut-être que c'est parce que vous êtes d'appel
listen(port)
deux fois. La deuxième écoute() peut être jeter EADDRINUSE parce que la première écoute() utilise le port déjà.server.listen(port);
var io = sio.listen(server, { log:true });
OriginalL'auteur Kit
Il ressemble à votre serveur est incorrect. Jetez un oeil à cet exemple de la façon dont vous pouvez utiliser socket.io avec votre serveur http ensemble: Nodejs & socket io : garde - erreur: Erreur: écouter EADDRINUSE
OriginalL'auteur Ruslan