ReactJSNinja
@ReactJSNinja
React.js Developer

Kак добавить socket.id в объект js, но только один раз после каждого обновления страници?

хочу понять как можно сделать чтоб в объекте storeEachSocket папал дата ток один раз
у мя вот такая проблема когда каждий раз обновляю мою страницу то оно каждий раз добавляет дату в объект.... даже попробовал удалить их ключи во время disconnect но не помогло
помогите понять как сделать что еслиб я зашел на роут "/chat" и оно добавило id то еслиб я обнавил страничку на роут "/chat" то надо чтоб показал ток один юзер имею ввиду в объекте storeEachSocket не добавил много id при обновления страници и лентс объекта показал ток 1

Client.js
var
io = require("socket.io-client"),
socketURL = "/chat";
socket=io.connect(socketURL);

socket
.on("connect", function () {
console.log("chat connection established");
})
.on("disconnect", function () {
console.log("chat disconnected");
})
.on("join", function (username) {
console.log(username+" : entered to chat");
})
.on("leave", function (username) {
console.log(username+" : left the chat");
})
.on("message", function (username,message) {
console.log("user : "+username+" > "+message);
})
.on("error", function (error) {
console.log("ERROR msg : "+error);
});
****************************************************************************************************
Server.js

const
//------------------express----------------->
express = require("express"),
app = express();
//<-------------------------------------------
let
//---------------socket.io----------------->
socket = require("socket.io"),
http = require('http'),
server = http.Server(app),
io = socket.listen(server),
//<---------------------------------------------
path = require("path"),
bodyParser = require('body-parser'),
router = express.Router(),
port = process.env.port || 3002;
server.listen(port, () => console.log("server is running..."));

let storeEachSocket={};
const chat_route=io.of("/chat");
chat_route.on('connection', function (socket) {
var userid = socket.id;
storeEachSocket[userid] = socket;
let Objsize=Object.keys(storeEachSocket).length;
console.log("server connection established");
console.log("connected users : "+Objsize);
});
io.on('disconnect', function(socket){
console.log("server disconnected");
let userid = socket.id;
delete storeEachSocket[userid];
});
  • Вопрос задан
  • 651 просмотр
Пригласить эксперта
Ответы на вопрос 1
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
Записывайте socket.id в sessionStorage на клиенте, в таком случае после обновления страницы он будет тот-же,а при открытии новой вкладки будет новый
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект