Javascript Socket.io教程未打印到控制台的连接

Javascript Socket.io教程未打印到控制台的连接,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我不明白为什么在我刷新页面时它不会打印“已连接的用户”,我想知道这是为什么。下面是index.html文件。我正在学习入门教程() Socket.IO聊天 * { 保证金:0; 填充:0; 框大小:边框框; } 身体{ 字体:13px Helvetica,Arial; } 形式{ 背景:#000; 填充:3倍; 位置:固定; 底部:0; 宽度:100%; } 表单输入{ 边界:0; 填充:10px; 宽度:90%; 右边距:0.5%; } 窗体按钮{ 宽度:9%; 背景:rgb(1302242

我不明白为什么在我刷新页面时它不会打印“已连接的用户”,我想知道这是为什么。下面是index.html文件。我正在学习入门教程()


Socket.IO聊天
* {
保证金:0;
填充:0;
框大小:边框框;
}
身体{
字体:13px Helvetica,Arial;
}
形式{
背景:#000;
填充:3倍;
位置:固定;
底部:0;
宽度:100%;
}
表单输入{
边界:0;
填充:10px;
宽度:90%;
右边距:0.5%;
}
窗体按钮{
宽度:9%;
背景:rgb(130224255);
边界:无;
填充:10px;
}
#信息{
列表样式类型:无;
保证金:0;
填充:0;
}
#信息李{
填充物:5px10px;
}
#信息李:第n个孩子(单数){
背景:#eee;
}
    发送
var socket=io();
问题在于html文件的这一部分:

var socket=io();

您需要先加载socket.io库,如下所示:

然后实例化socket.io对象:

var socket=io();

我这么做了,但仍然不起作用。即使在重新启动服务器后,为什么我不能在实例化socket.io对象的同一脚本中加载脚本?因为脚本标记具有src属性,如果脚本标记中的代码正在异步加载,则它被视为“阻塞”脚本。因此,它在src属性中的文件加载之前执行标记内部的代码。据我所知,最好将文件和内联脚本保存在单独的标记中。
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");
});

http.listen(3000, function() {
    console.log('listening on 3000');
});

io.on('connection', function(socket){
  console.log('a user connected');
  socket.on('disconnect', function(){
    console.log('user disconnected');
  });
});
<!DOCTYPE html>
<html>
<head>
    <title>Socket.IO chat</title>
    <style type="text/css">
     * {
        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: 0.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">
        <form action="">
            <input id="m" autocomplete="off" />
            <button>Send</button>
        </form>
    </ul>

    <script src="socket.io/socket.io.js">
        var socket = io();
    </script>
</body>