[英]Socket.io socket.emit not passing data to server
我正在嘗試使用Socket.io。 我有以下代碼。
這是我的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); <- This is 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>
這是我的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!") <- This is getting printed
socket.on('chat message', function(msg){
console.log(msg); <- This is not getting printed.
io.emit('chat message', msg);
});
});
http.listen(3001, function(){
console.log('listening on *:3001');
});
我已經從Socket.io網站克隆了示例項目。 我試圖通過用VanillaJS替換Jquery來修改一些代碼。
您正在偵聽chat message
但從客戶端發出message
。 .emit
提供的event
名稱必須與.on
處理程序中服務器上正在偵聽的event
名稱匹配。
//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 is getting printed socket.on('chat message', function(msg) { console.log(msg); < -This is 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 is getting printed. socket.emit('chat message', msg.value); //-----------^^^^^^^^^^^^ Event name must match with the `.on` listener on the server! msg.value = ''; return (false); } </script> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.