javascript - 未调用socket.io“连接”事件
问题描述
我正在尝试使用 express 和 socket.io 创建一个非常简单的服务器。当我打开网页 (at localhost:2000
) 时,我可以看到 HTML 文件,但io.sockets.on("connection")
没有调用该事件,并且"socket connection"
在控制台中看不到。
app.js
:
var express = require("express");
var app = express();
var serv = require("http").Server(app);
app.get("/",function(req, res) {
res.sendFile(__dirname + "/client/index.html");
});
app.use("/client", express.static(__dirname + "/client"));
serv.listen(2000)
var io = require("socket.io")(serv,{});
io.sockets.on("connection", function(socket) {
console.log("socket connection")
});
index.html
:
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script>
var socket = io();
</script>
我以前通过 npm安装express
过。socket.io
我怎样才能解决这个问题?我在 macOS 11.1 上运行node.js v12.13.1
、express 6.12.1
和socket.io 6.12.1
解决方案
刚刚想通了。我使用的 CDN 已经过时了。
在index.html
中,我替换了
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
和
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.1.0/socket.io.js"></script>
推荐阅读
- ruby-on-rails - 如何在不在 Rails 中编写新控制器的情况下生成用于测试的任意 flash 消息?
- git - 在 git 配置文件中定义变量?
- java - AbstractBorder 在 JTabbedPane 上绘制
- c++ - C++ 入门第 5 版:未命名枚举创建对象
- php - session_set_cookie_params 的 PHP 8.0 PHP.ini 语法
- python - 通过 vpn 运行 Scrapy-Splash
- javascript - WEB页面的元素本身不能被滤色片的处理点击
- c# - 设置 ItemsSource 时出现 System.NullReferenceException
- pytest - 如何使用 pytest usefixtures 在测试函数中获取夹具的引用
- php - 在更新后调用中调用 if 语句