Files
Exchange/server/api/socket.js
2025-11-07 22:24:40 +01:00

53 lines
2.0 KiB
JavaScript
Executable File

"use strict";
exports.__esModule = true;
exports.getonlineNotLoginUsers = exports.getonlineLoginUsers = exports.startIo = void 0;
// import * as scocketIo from 'socket.io'
var scocketIo = require('socket.io');
var redis = require("redis");
var client = redis.createClient();
var logger_1 = require("./logger");
var onlineLoginUsers = null;
var onlineNotLoginUsers = null;
var socketConnection = function socketConnection(socket) {
logger_1.logger.info("Client connected [id=" + socket.id + "]");
};
var socketDisconnection = function socketDisconnection(socket) {
logger_1.logger.info("Client gone [id=" + socket.id + "]");
};
exports.startIo = function (server) {
var io = scocketIo(server, {
serveClient: false,
cors: {
origin: '*'
}
});
io.on('connection', socketConnection);
io.on('disconnect', socketDisconnection);
onlineLoginUsers = io.of('/onlineLoginUsers');
onlineNotLoginUsers = io.of('/onlineNotLoginUsers');
onlineLoginUsers.on('connection', function (socket) {
logger_1.logger.info("Client connected [id=" + socket.id + "]");
console.log('socket.handshake', socket.handshake.session);
if (socket.handshake.session.userId) {
client.sadd(socket.handshake.session.userId, socket.id, function (err, reply) {
if (err)
logger_1.logger.warn(err);
});
logger_1.logger.info("A logged in client connected in :" + socket.id);
socket.on('disconnect', function () {
logger_1.logger.info("Client gone [id=" + socket.id + "]");
client.srem(socket.handshake.session.userId, socket.id, function (err, reply) {
logger_1.logger.info("socket with id " + socket.id + " is closed!");
});
});
}
});
return io;
};
exports.getonlineLoginUsers = function () {
return onlineLoginUsers;
};
exports.getonlineNotLoginUsers = function () {
return onlineNotLoginUsers;
};