【发布时间】:2022-01-14 18:03:17
【问题描述】:
我正在使用 socket.io 来显示一条消息,但是当我运行 node server.js 时,它不会在控制台记录任何输出消息。我已附加了我的 chat.html、server.js 和 main.js 文件以显示 socket.io 代码。
聊天.html
<script src="http://localhost:54159/socket.io/socket.io.js"></script>
<script src="js/main.js"></script>
server.js
const http = require('http');
const express = require('express');
const socketio = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = socketio(server);
app.use(express.static(path.join(__dirname, 'public')));
io.on('connection', (socket) => {
console.log('New web socket connection...');
socket.emit('message', 'Welcome to Chat Room!');
});
const PORT = 54159 || process.env.PORT;
server.listen(PORT, () => console.log(`Server running on port ${PORT}`));
main.js
const socket = io();
【问题讨论】:
-
您是否检查了浏览器开发控制台以查看您的网页中是否存在脚本错误或加载错误?您的某个脚本似乎没有正确加载到网页中,因此没有 socket.io 连接。
-
我很困惑如何做到这一点。我在谷歌浏览器中将端口定义为 58228,但在我正在执行代码的括号中,它说本地主机是 8123。此外,当我加载它时,它有时会切换端口,所以我对如何解决这个问题感到困惑。
-
我添加了一张我遇到的错误的图片。我很困惑,请帮助!
-
好吧,客户端必须知道您在哪个端口上运行。如果它不知道端口,则无法连接到您的服务器。
-
看来
54159不是您服务器的正确端口,这就是您在这里使用的端口:<script src="http://localhost:54159/socket.io/socket.io.js"></script>所以socket.io 无法正确加载。您使用什么 URL 在浏览器中加载网页?这似乎有正确的端口,因为main.js似乎正在运行。
标签: html css node.js express socket.io