Я разработал утилиту, которая удаляет задания со всех сайтов и сохраняет их в базе данных. Я сделал свой собственный журнал по умолчанию, где я получаю сообщения (ошибки, информация) и т. Д. Я использую socket.io для обновления своего представления в режиме реального времени и для базы данных.
Проблема в том, что когда я запускаю приложение, оно прекрасно получает make socket и соединения с базой данных. Но когда я пытаюсь обновить страницу, одно и то же соединение снова устанавливается дважды с тем же сообщением и разными идентификаторами. Как бы я ни обновлял страницу, соединения устанавливаются, и идентификатор меняется, но для всех установленных соединений они используют один идентификатор,
Ниже находится журнал, который показывает это:
![enter image description here](https://i.stack.imgur.com/w0DJh.png)
Я загрузил это видео, пожалуйста, проверьте это. Попробуйте посмотреть в самом начале, а затем в 01:41
и 03:06
, прежде чем начинать удаление первого сайта, соединение будет установлено, но когда начинается второй просмотр сайта, дважды выдается сообщение Internet Connection
, и то же самое означает, что когда запускается третье удаление веб-сайта, количество сообщений удваивается каждый раз. Я не знаю почему.
Я пытался ответить на вопрос , но все еще безуспешно. Код состоит из 600+ строк в файле server
и 150+ строк второго файла и того же на стороне клиента, поэтому я не могу загрузить все, и это немного конфиденциально.
Но сокетное соединение на клиенте и сервере выглядит так:
Сторона сервера
const express = require("express");
const app = express();
const scrap = require("./algorithm");
const event = scrap.defEvent;//imported from another file
const ms_connect = scrap.ms_connect;
const server = app.listen(8000, function(){ console.log('Listening on 8000'); });
const io = require("socket.io").listen(server);
const internetAvailable = require("internet-available");
app.use(express.static(__dirname + "/"));
app.get("/scrap",function(req,res){
res.sendFile(__dirname+"/index.html");//Set the Default Route
io.on("connection",function(socket){ //On Socket Connection
socketSameMess("Socket",'Sockets Connection Made on ID : <span style="color:#03a9f4;">'+socket.id+'<span>');
ms_connect.connect(function(err){//On Connection with Database
if(err) socketSameMess("database_error",err+" "); // If any error in database connection
socketSameMess("Database ",'Connected to MYSQL Database Successfully...');
})
})
})
function eventSameMess(auth,mess){
//hits the custom console
defEvent.emit("hitConsole",{a:auth,m:mess});
}
Клиентская сторона
var socket = io.connect('http://localhost:8000');
socket.on('connect',function(){
if(socket.connected){
initDocument();
}
})