Я работаю с node.js и express.js и пытаюсь добавить socket.io в один из моих файлов .ejs, но при этом я получаю странные ошибки:
Failed to load resource: the server responded with a status of 404 (Not Found) socket.io/?EIO=3&transport=polling&t=MV6f2K2
Failed to load resource: the server responded with a status of 404 (Not Found) socket.io/?EIO=3&transport=polling&t=MV6f2cR
и затем, в секунду:
GET https://www.mywebsite.eu/socket.io/?EIO=3&transport=polling&t=MV6f2cR 404 (Not Found) socket.io.js:7
Мои файлы: app.js:
const fs = require('fs');
const express = require('express');
const app = express();
const http = require('http').Server(app);
const fileUpload = require('express-fileupload');
var io = require('socket.io')(http);
.....
var router = express.Router();
var pathView = __dirname + "/views/";
app.use(express.urlencoded({extended: true}));
app.use(express.json());
const listenPort = 8000;
app.set('view engine', 'ejs');
app.use(express.static('public'));
app.use('/public', express.static('public'));
app.use('/scripts', express.static(__dirname + '/node_modules/'));
//SOCKET IO PART
io.on('connection', function(socket){
console.log('a user connected');
});
//SOCKET IO PART
..........
app.get & app.post requests
..........
app.use( "/", router);
// Not found
app.use("*",function(req,res){
res.setHeader('Content-Type', 'text/html');
res.status(404).send('Page introuvable !');
});
// Run server
app.listen(listenPort, function () {
console.log('Example app listening on port ' + listenPort )
})
profile.ejs:
.....content of the page(it's working well).......
<%- include('scripts') -%>
<script src="/scripts/socket.io/socket.io.js"></script>
</html>
<script>
var socket = io();
</script>
Я должен упомянуть, что я скопировал файл socket.io.js из socket.io-client и поместил его в socket.io, если бы я этого не сделал, я получил бы ошибку 404 файла в devtools.
Надеюсь, остальной код не требуется, я его не добавил, потому что он был много и не имеет ничего общего с socket.io.