#node.js #socket.io #localhost #http-status-code-404
Вопрос:
Я следовал этому базовому учебнику, когда быстро узнал об этом сокете.ио, похоже, не обнаруживает моего index.html и localhost выдает сообщение об ошибке 404. Так что, возможно, я что-то перепутал, поэтому скопировал файлы из учебника, но та же проблема сохраняется. Что я упускаю?
Комментарии:
1. К вашему сведению, этот учебник не дает возможности фактически загрузить
index.html
, так как простой сервер в этом примере-это всего лишь сокет. сервер ввода-вывода и нет обычного http-сервера, который мог бы обслуживать index.html. Итак, как вы загружаетесь index.html?2. Я так и думал. io загрузил бы его аналогично express.
3. Нет, розетка. ввод-вывод отвечает ТОЛЬКО на сокет. запросы ввода-вывода, а не обычные запросы веб-страниц. Подойди к розетке. веб-сайт ввода-вывода для примеров использования сокета. ио С экспрессом, как здесь .
4. Я понимаю, спасибо. Странно, как в учебнике этого не хватает…
Ответ №1:
Разъем.ввод-вывод сам по себе реагирует ТОЛЬКО на сокет.запросы ввода-вывода, а не обычные запросы веб-страниц. Итак, если вы хотите, чтобы ваш сервер работал как с сокетом, так и с ним.io и быть обычным веб-сервером для обслуживания веб-страниц, тогда вам нужно будет интегрировать обычный веб-сервер вместе с вашим сокетом.код ввода-вывода.
Розетка.на веб-сайте io приведен пример использования сокета.ио С экспрессом, как здесь. Основная концепция (из сокета.io doc) это:
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');
});