#node.js #express #sockets #socket.io
#node.js #экспресс #сокеты #socket.io
Вопрос:
Я пишу это серверное приложение (экспресс и socket.io ), только в самом начале. Я вижу двойной журнал, поэтому у меня двойное подключение к серверу при запуске вкладки на localhost: 8080. Что я делаю не так? Это сокет.ошибка ввода-вывода?
const express = require("express");
const path = require("path");
const socket = require("socket.io");
const port = process.env.PORT || 8080;
const app = express();
const server = app.listen(port);
app.use(express.static(__dirname "/dist"));
app.get("/", (req, res) => {
res.sendFile(path.resolve(__dirname "/dist", "index.html"));
});
// Socket setup
const io = socket(server);
io.on("connect", function (socket) {
console.log("Made socket connection");
});
Комментарии:
1. Выглядит нормально. Как выглядит код клиента?
2. К вашему сведению,
express.static()
уже реализовано то, что выapp.get()
делаете, так что этот маршрут немного избыточен.
Ответ №1:
Проблема заключалась в том, что больше клиентских файлов js вызывали socket() . Правильный метод — импортировать сокет.библиотека ввода-вывода в, в ваш HTML-файл, так что это будет доступно для всех клиентских файлов js, реализуя только одно соединение.