我正在浏览Socket.io tutorial on creating a chat room,我无法让我的应用程序将聊天消息记录到控制台 .
应用程序在用户连接和断开连接时进行记录,但在消息传递时不记录 .
有什么想法吗?
我的index.html页面的相关部分:
<script src="/socket.io/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
var socket = io();
$('form').submit(function() {
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
</script>
<body>
<ul id="messages"><ul>
<form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
</body>
我的index.js文件:
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use(express.static('public'));
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.on('chat message', function(msg) {
console.log("message: " + msg);
});
});
1 回答
我已经开始工作了!
解决方案的步骤: - 将脚本标记与事件监听器分离到一个单独的JS文件中 - 在脚本标记最初的同一位置包含该JS文件 - 在文档准备好时加载chatListener
我的文件现在看起来像这样,一切都很好:
index.html:
index.js: 没有改变
main.js:
最后,我认为这是初学者的JS错误;我正在页面顶部加载脚本(如教程建议的那样),并且表单上的事件监听器从未注册过 .