javascript - Socket.io socket.emit not passing data to server -
i trying hands on socket.io. have following code.
this index.html.
<!doctype html> <html> <body> <ul id="messages"></ul> <form action="" onsubmit="return sayhello()"> <input id="m" autocomplete="off" /><button>send</button> </form> <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script> <script> var socket = io.connect('http://127.0.0.1:3001/'); function sayhello(){ var msg = document.getelementbyid('m'); console.log(msg); <- getting printed. socket.emit('message', msg.value); msg.value=''; return (false); } // $('form').submit(function(){ // socket.emit('chat message', $('#m').val()); // $('#m').val(''); // return false; // }); // socket.on('chat message', function(msg){ // $('#messages').append($('<li>').text(msg)); // }); </script> </body> </html>
this server.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){ console.log("go!") <- getting printed socket.on('chat message', function(msg){ console.log(msg); <- not getting printed. io.emit('chat message', msg); }); }); http.listen(3001, function(){ console.log('listening on *:3001'); });
i have cloned sample project socket.io website. trying modify code replacing jquery vanillajs.
you listening chat message
emitting message
client. event name provided .emit
must match event
name being listened on server in .on
handler.
//server side code 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) { console.log("go!") < -this getting printed socket.on('chat message', function(msg) { console.log(msg); < -this not getting printed. io.emit('chat message', msg); }); }); http.listen(3001, function() { console.log('listening on *:3001'); });
<!doctype html> <html> <body> <ul id="messages"></ul> <form action="" onsubmit="return sayhello()"> <input id="m" autocomplete="off" /> <button>send</button> </form> <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script> <script> var socket = io.connect('http://127.0.0.1:3001/'); function sayhello() { var msg = document.getelementbyid('m'); console.log(msg); < -this getting printed. socket.emit('chat message', msg.value); //-----------^^^^^^^^^^^^ event name must match `.on` listener on server! msg.value = ''; return (false); } </script> </body> </html>
Comments
Post a Comment