Utilisation emit() avec express@4.10.2
bonsoir,
Pièce jointe 225233
comme vous voyez dans l'image ci-dessus, le serveur est bien lancé et il écoute le port 3000 et il détecte aussi les utilisateurs qui se connectent.
par-contre la fonction emit(), n'a jamais fonctionné, les messages écrit ne sont pas ajoutés à <ul id="messages"></ul>, et même dans le cmd y'a rien.
les deux fichiers que j'utilise c'est index.html et index.js(server).
index.html :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| <!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="" id="form">
<input id="m" name="messg" autocomplete="off" />
<input type="button" id="submit" value="Send"/>
</form><script type="text/javascript" src="../global_jQuery/jquery-3.1.1.js"></script>
<script type="text/javascript" src="/node_modules/socket.io-client/socket.io.js"></script>
<script type="text/javascript">
var io = io.connect("http://localhost:3000/IOSocket");
io.on('this', function (data) {
$('body').text( $('body').text() + data + '\n' );
});
io.on('chatmessage', function(msg){
$('#messages').append($('<li>').text(msg));
console.log(msg);
});
io.on('join',function(data){
console.log(data);
});
$(function(){
$('form').on("submit",function(e){
e.preventDefault();
var _message=$("#m").val();
io.emit('chatmessage',_message);
$('#m').val('');
});
});
</script>
</body>
</html> |
index.js :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
var express=require('express')
, app = express()
, server = require('http').Server(app)
, io = require('socket.io')(server);
/*
app.get('/', function(req, res){
res.sendfile('index.html');
});*/
app.use("/", express.static(__dirname ));
io.on('connection', function(socket){
socket.on('join',function(){
io.emit('this', { will: 'be received by everyone'});
io.emit('join','Hello World from client');
});
socket.on('chatmessage',function(msg){console.log('Message :'+msg);});
console.log("utilisateur se connecte !");
});
server.listen(3000,function(){console.log("Serveur à l'écoute du port :"+server.address().port );}); |
je voudrais savoir pourquoi emit n'envois pas de message et aussi si nodejs require un service Windows ou quelque chose comme ça, par-ce que il y'a quelques jours que j'ai arrêté quelques services qui utilisait le port 80, ça me bloquait le xampp.