Prompt Detail:
Конечно! Вот пример простого кода, демонстрирующего работу Server Worker:
javascript// server.js (основной серверный файл)
// Подключение модуля 'http' для создания сервера
const http = require('http');
// Создание сервера
const server = http.createServer((req, res) => {
// Создание нового Server Worker
const worker = new Worker('./worker.js');
// Обработка сообщений от Server Worker
worker.on('message', message => {
console.log(`Получено сообщение от Server Worker: ${message}`);
res.end(`Результат вычисления: ${message}`);
});
// Отправка сообщения Server Worker
worker.postMessage('Начать вычисление');
});
// Запуск сервера на порту 3000
server.listen(3000, () => {
console.log('Сервер запущен на порту 3000');
});
javascript// worker.js (файл Server Worker)
// Обработка сообщений от основного сервера
self.onmessage = event => {
console.log(`Получено сообщение от основного сервера: ${event.data}`);
// Выполнение вычислений (в данном случае просто таймер)
setTimeout(() => {
const result = 'Результат вычислений';
console.log(`Завершены вычисления: ${result}`);
// Отправка результата обратно основному серверу
self.postMessage(result);
}, 5000);
};
В этом примере создается простой сервер с использованием модуля 'http'. При получении запроса от клиента, основной сервер создает новый Server Worker, который находится в файле 'worker.js'. Затем основной сервер отправляет сообщение Server Worker с помощью worker.postMessage()
. Server Worker получает сообщение, выполняет вычисления (в данном случае просто таймер на 5 секунд) и отправляет результат обратно основному серверу с помощью self.postMessage()
. Основной сервер принимает сообщение от Server Worker и отправляет его в ответ клиенту.
Обратите внимание, что этот пример демонстрирует базовую концепцию Server Worker и не охватывает полный функционал и возможности данной технологии.