From Beefy Earthworm, 2 Months ago, written in JavaScript.
This paste is a reply to Re: WebSocket-Server from Anil
- go back
Embed
Viewing differences between Re: WebSocket-Server and Re: Re: WebSocket-Server
const WebSocket = require('ws');
const fs = require('fs');
const path = require('path');

// Define the output file path
const outputFilePath = path.join(__dirname, 'received_stereo_audio.raw');

// Create a writable stream to the output file
const writeStream = fs.createWriteStream(outputFilePath, { flags: 'w' }); // 'a' flag for appending

// Create a WebSocket server
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', (ws) => {
    console.log('Client connected');

    ws.on('message', (message) => {
        // We expect binary data (ArrayBuffer)
        if (typeof message === 'object' && message instanceof Buffer) {
            // Write the received data directly to the file
            writeStream.write(message);
            console.log(`Received ${message.length} bytes of stereo audio data and wrote to file`);
        }
    });

    ws.on('close', () => {
        console.log('Client disconnected');
    });
});

// Handle server close to properly close the file stream
wss.on('close', () => {
    writeStream.end(); // Close the file stream
    console.log('WebSocket server closed, file stream ended');
});

console.log('WebSocket server is listening on ws://localhost:8080');