403Webshell
Server IP : 158.247.231.215  /  Your IP : 216.73.216.159
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux CTMS 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.0.30
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /mnt/blockstorage/vrlms_old/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /mnt/blockstorage/vrlms_old/main.js
const express = require('express');
const http = require('http');
const WebSocket = require('ws');
const cors = require('cors');

const app = express();

// Enable CORS for all routes
app.use(cors());

const server = http.createServer(app);
const wss = new WebSocket.Server({ server });

const classrooms = {};

// Serve a simple HTML page
app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

wss.on('connection', (ws) => {
    
    ws.on('message', (message) => {
        
        const data = JSON.parse(message);

        const { type, payload } = data;
        switch (type) {
            case 'createClassroom':
                classrooms[payload.classroomId] = { teacherSocket: ws };
                ws.send(JSON.stringify({ type: 'classroomCreated', payload: payload.classroomId }));
                break;

            case 'joinClassroom':
                classrooms[payload.classroomId].teacherSocket.send(JSON.stringify({ type: 'studentJoined', payload: ws._socket.remoteAddress }));
                break;

            case 'buttonClicked':
                const { classroomId, levelName } = payload;
                
                message = JSON.stringify({ type: 'LoadLevel', 'level':levelName });

                broadcastMessage(message);

                // classrooms[classroomId] = { teacherSocket: ws };
                // classrooms[classroomId].teacherSocket.send(JSON.stringify({ type: 'buttonClicked', payload: { classroomId,levelName  } }));
                break;

            case 'pause':
                
                message = JSON.stringify({ type: 'Pause'});

                broadcastMessage(message);

                // classrooms[classroomId] = { teacherSocket: ws };
                // classrooms[classroomId].teacherSocket.send(JSON.stringify({ type: 'buttonClicked', payload: { classroomId,levelName  } }));
                break;
            case 'video':
                broadcastVideoFrame(payload);

            default:
                // Handle unknown message type
                break;
        }
    });

    ws.on('close', () => {
        // Implement necessary cleanup logic
    });
});

const broadcastVideoFrame = (frameBytes) => {
    
   
    // console.log(frameBytes);
    wss.clients.forEach((client) => {
        if (client.readyState === WebSocket.OPEN) {
            client.send(JSON.stringify({type:"video", data:frameBytes}));
        }
    });
};

function broadcastMessage(message) {
    console.log(message);
    wss.clients.forEach((client) => {
      if (client.readyState === WebSocket.OPEN) {
        client.send(message);
      }
    });
}

// Start the server
const PORT = process.env.PORT || 3300;
server.listen(PORT, () => {
    console.log(`WebSocket server is running on port ${PORT}`);
});

Youez - 2016 - github.com/yon3zu
LinuXploit