Probleme avec socket.on en node js

Résolu
FauconCharmant82 Messages postés 2 Date d'inscription jeudi 15 août 2024 Statut Membre Dernière intervention 19 août 2024 - Modifié le 19 août 2024 à 16:15
mamiemando Messages postés 33266 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 septembre 2024 - 19 août 2024 à 17:10

Bonjour tout le monde.

J'essaie de créer une petite application de chat pour faire des tests plus tard, mais je n'ai pas le résultat attendu. Il semble avoir un problème avec la méthode socket.on

Au lieu d'afficher la méthode dans la console, il ne se passe rien.

Voici le code :

index.html

<!doctype html>
<html>
	<head>
		<title>Socket.IO chat</title>
	<style>
		* { margin: 0; padding: 0; box-sizing:border-box; }
		body { font: 13px Helvetica, Arial; }
		form { background: #000; padding: 3px;
		position: fixed; bottom: 0; width: 100%; }
		form input { border: 0; padding: 10px; width:90%; margin-right: .5%; }
		form button { width: 9%; background: rgb(130,224, 255); border: none; padding: 10px; }
		#messages { list-style-type: none; margin: 0; padding: 0; }
		#messages li { padding: 5px 10px; }
		#messages li:nth-child(odd) { background: #eee; }
	</style>
	</head>

	<body>
	    <ul id="messages"></ul>
		<form action="">
			<input id="m" autocomplete="off"/><button>Send</button>
		</form>
		<script src="/socket.io/socket.io.js"></script>
		<script src="http://code.jquery.com/jquery1.11.1.js"></script>
		<script>
			var socket = io();
			$('form').submit(function(){
			socket.emit('chat message', $('#m').val());
			$('#m').val('');
			return false;
			});
		</script> 
	</body>
</html>

index.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
	res.sendFile(__dirname +'/index.html');
});

io.on('connection', function(socket){ 
	socket.on('chat message', function(msg) {
	console.log('message: ' + msg);
	});
});


http.listen(3000, function(){
console.log('listening on *:3000');
});

J'ai fait quelques tests, la connexion est bien établie, le problème vient d'ici :

socket.on('chat message', function(msg) {
	console.log('message: ' + msg);
	});

Quelqu'un peut me guider à résoudre le problème s'il vous plait ?

Je vous remercie par avance !

1 réponse

mamiemando Messages postés 33266 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 septembre 2024 7 777
19 août 2024 à 16:26

Bonjour,

As-tu bien suivi les indications données dans ce tutoriel ? Quels messages apparaissent dans la console ? Si tu repars du code final, est-ce que celui-ci fonctionne ?

Bonne chance

1
FauconCharmant82 Messages postés 2 Date d'inscription jeudi 15 août 2024 Statut Membre Dernière intervention 19 août 2024 1
19 août 2024 à 16:41

Bonjour,

Merci pour votre réponse !

J'ai finalement pu résoudre le problème. En effet, le problème provenait de l'URL de JQuery. 

<script src="http://code.jquery.com/jquery1.11.1.js"></script>

Il manquait un tiret entre avant le numéro de la version. 

<script src="http://code.jquery.com/jquery-1.11.1.js"></script>

C'est beau la programmation, il m'a fallu 2 jours pour trouver l'erreur :D

1
mamiemando Messages postés 33266 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 septembre 2024 7 777 > FauconCharmant82 Messages postés 2 Date d'inscription jeudi 15 août 2024 Statut Membre Dernière intervention 19 août 2024
19 août 2024 à 17:10

Félicitations, merci pour ton retour et bonne continuation :-)

1