Probleme avec socket.on en node js

Résolu
FauconCharmant82 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33687 Date d'inscription   Statut Modérateur Dernière intervention   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 e 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 33687 Date d'inscription   Statut Modérateur Dernière intervention    

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   Statut Membre Dernière intervention   1
 

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 33687 Date d'inscription   Statut Modérateur Dernière intervention    

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

1