Я разработал инструмент для очистки, который удаляет задания со всех веб-сайтов и сохраняет их в базе данных. Я сделал свой собственный журнал по умолчанию, где я получаю сообщения (ошибки, информацию) и т. д. Я использую socket.io для обновления своего представления в режиме реального времени, а также для базы данных.
Проблема в том, что когда я запускаю приложение, оно отлично подключается к сокету и базе данных. Но когда я пытаюсь обновить страницу, одно и то же соединение снова устанавливается дважды с одним и тем же сообщением и разными идентификаторами. Когда я обновляю страницу, соединения устанавливаются, и идентификатор меняется, но для всех установленных соединений используется один идентификатор,
Ниже приведен журнал, который показывает это:
Я загрузил это видео, проверьте и его. Попробуйте посмотреть в самом начале, а потом на 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();
}
})