User: напиши пример websocet соединения с UUID и секретным ключом, который генерируется на сервере
Assistant: Для создания WebSocket соединения с использованием UUID и секретного ключа, генерируемого на сервере, вам потребуется следующее:

1. Серверная часть, которая будет генерировать UUID и секретный ключ.
2. Клиентская часть, которая будет устанавливать WebSocket соединение, передавая UUID и секретный ключ.

### Пример серверной части на Node.js

Установите необходимые зависимости:

```bash
npm install express ws uuid
```

Серверный код:

```javascript
const express = require('express');
const WebSocket = require('ws');
const { v4: uuidv4 } = require('uuid');
const crypto = require('crypto');

const app = express();
const port = 3000;
const wss = new WebSocket.Server({ noServer: true });

let connections = {};

app.get('/generate-token', (req, res) => {
    const uuid = uuidv4();
    const secretKey = crypto.randomBytes(16).toString('hex'); // Генерация секретного ключа
    connections[uuid] = secretKey; // Сохраняем UUID и секретный ключ
    res.json({ uuid, secretKey });
});

wss.on('connection', (ws, req, client) => {
    const { uuid, secretKey } = req.query;

    // Проверка правильности UUID и секретного ключа
    if (connections[uuid] && connections[uuid] === secretKey) {
        ws.on('message', (message) => {
            console.log(`Received: ${message}`);
            // Ваши действия с сообщением
        });

        ws.send('Connection established');
    } else {
        ws.close();
    }
});

const server = app.listen(port, () => {
    console.log(`Server is listening on port ${port}`);
});

server.on('upgrade', (request, socket, head) => {
    const url = new URL(request.url, `http://${request.headers.host}`);
    if (url.pathname === '/websocket') {
        wss.handleUpgrade(request, socket, head, (ws) => {
            wss.emit('connection', ws, request, url);
        });
    } else {
        socket.destroy();
    }
});
```

### Пример клиентской части на JavaScript

Клиентский код может выглядеть следующим образом:

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>WebSocket Client</title>
</head>
<body>
    <script>
        async function connectWebSocket() {
            // Получаем уникальный UUID и секретный ключ
            const response = await fetch('http://localhost:3000/generate-token');
            const { uuid, secretKey } = await response.json();

            // Создаем соединение WebSocket
            const socket = new WebSocket(`ws://localhost:3000/websocket?uuid=${uuid}&secretKey=${secretKey}`);

            socket.onopen = () => {
                console.log('Connected to WebSocket');
                socket.send('Hello Server!');
            };

            socket.onmessage = (event) => {
                console.log(`Message from server: ${event.data}`);
            };

            socket.onclose = () => {
                console.log('WebSocket connection closed');
            };
        }

        connectWebSocket();
    </script>
</body>
</html>
```

### Запуск приложения

1. Запустите серверный код на Node.js.
2. Откройте HTML-файл с клиентским кодом в вашем браузере.

После выполнения этих шагов ваш клиент должен успешно подключаться к серверу через WebSocket, используя сгенерированные UUID и секретный ключ.
User: существует еще одна библиотека что то типа JVC точно не помню
Assistant: