Javascript Socket.io教程未打印到控制台的连接
我不明白为什么在我刷新页面时它不会打印“已连接的用户”,我想知道这是为什么。下面是index.html文件。我正在学习入门教程()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
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>