I am getting an empty array as online users :
Array(0)
[]
Below is my server side code :
// socket.js
import { Server } from "socket.io";
import http from "http";
import express from "express";
const app = express();
const server = http.createServer(app);
const io = new Server(server, {
cors: {
origin: ["http://localhost:3000"],
methods: ["GET", "POST"],
},
});
export const getReceiverSocketId = (receiverId) => {
return userSocketMap[receiverId];
};
const userSocketMap = {}; // {userId: socketId}
io.on("connection", (socket) => {
console.log("a user connected", socket.id);
const userId = socket.handshake.query.userId;
if (userId != "undefined") userSocketMap[userId] = socket.id;
// io.emit() is used to send events to all the connected clients
io.emit("getOnlineUsers", Object.keys(userSocketMap));
// socket.on() is used to listen to the events. can be used both on client and server side
socket.on("disconnect", () => {
console.log("user disconnected", socket.id);
delete userSocketMap[userId];
io.emit("getOnlineUsers", Object.keys(userSocketMap));
});
});
export { app, io, server };
I tried reading socket.js documetation but i'm not able to find the error
Any help is appreciated!
Hello Everyone I'm getting an empty array when trying to get online users . My code is as follows :
I am getting an empty array as online users : Array(0) []
Below is my server side code :
I tried reading socket.js documetation but i'm not able to find the error Any help is appreciated!