首页 > 解决方案 > Socket.io 找不到本地主机

问题描述

我正在关注这个基本教程,当我很快发现 socket.io 似乎没有检测到我的 index.html 并且 localhost 给出了错误消息 404。所以也许我输入了错误的东西,因此我从教程中复制了文件,但是同样的问题仍然存在。我错过了什么?

标签: node.jssocket.iolocalhosthttp-status-code-404

解决方案


Socket.io 本身只响应 socket.io 请求,而不是常规的网页请求。因此,如果您希望您的服务器既可以与 socket.io 一起使用,又可以成为一个常规的 Web 服务器来提供网页服务,那么您需要将一个常规的 Web 服务器与您的 socket.io 代码集成在一起。

socket.io 网站有一个如何使用 socket.io WITH Express 的示例,如下所示。基本概念(来自 socket.io 文档)是这样的:

const express = require('express');
const app = express();
const http = require('http');
const server = http.createServer(app);
const { Server } = require("socket.io");
const io = new Server(server);

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', (socket) => {
  console.log('a user connected');
});

server.listen(3000, () => {
  console.log('listening on *:3000');
});

推荐阅读