/socket.io/socket.io.js сеть::ОШИБКА 404 (Не найдена)

#javascript #node.js #express #server #socket.io

Вопрос:

Я борюсь с этим и пару последних дней пытался понять, как это сделать. Я потерпел неудачу, и именно поэтому я пишу это. Я видел вопросы от переполнения стека и других сайтов, но эти ответы не сработали для меня.

Я следил за этим «Начать работу» из сокета.ИО https://socket.io/get-started/chat Все работало нормально на локальных серверах, пока я не развернул его на сервере. Когда я пытаюсь войти в консоль сайта, меня регистрируют.

ПОЛУЧИТЬ http://8byte.pl/socket.io/socket.io.js сеть::ОШИБКА 404 (Не найдена)»

Ошибка неперехваченной ссылки: ввод-вывод не определен в приложении.js:3

Я знаю, почему появляется второй, но совершенно не понимаю, почему он не может найти socket.io.js файл, когда он смог найти его на локальном сервере.

Я пытался создать уникальный GET для этого, но это все еще не работало.

Приложение размещено на hitme.pl. Они используют CloudLinux, и у него есть опция настройки Node.js Приложение в прямом администрировании. Может быть, эта информация поможет.

Адрес приложения: 8byte.pl/chat

server.js

 const express = require("express");
const path = require("path");
const app = express();
const http = require("http").createServer(app);
const io = require("socket.io")(http, { cors: { origin: "*" } });
const morgan = require("morgan");

app.use(morgan("tiny"));

app.use(express.static(__dirname   "/public"));

app.get("/chat", (req, res) => {
    res.sendFile(path.join(__dirname   "/public", "index.html"));
});

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

    socket.broadcast.emit("new user connection");
    socket.on("disconnect", () => {
        socket.broadcast.emit("user disconnection");
    });

    socket.on("chat message", (msg) => {
        socket.broadcast.emit("new message", msg);
    });
});

http.listen(3000, () => "Server started");
 

дно index.html

 <script src="/socket.io/socket.io.js"></script>
<script src="app.js"></script>
 

начало app.js

 const socket = io();
 

Комментарии:

1. Почему отображается сообщение об ошибке http://8byte.pl/socket.io/socket.io.js (это порт 80), но ваш сервер работает на порту 3000?

2. <script src="/socket.io/socket.io.js"></script> Для этой строки, пожалуйста, попробуйте указать полный URL-адрес socket.io. Что-то похожее <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script> или похожее на URL CDN.