Да, вы можете добавить веб-сокеты к своему серверу, используя Express. Для этого вам понадобится установить библиотеку `ws`, которая поддерживает работу с веб-сокетами. Следуйте следующим шагам:
1. Установите пакет `ws` с помощью npm:
```
npm install ws
```
2. Создайте новый файл, например, `websocket.js`, и импортируйте необходимые модули:
```javascript
const WebSocket = require('ws');
const wss = new WebSocket.Server({ noServer: true });
```
3. Создайте функцию-обработчик, которая будет вызываться при подключении клиента к серверу:
```javascript
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: ', message);
ws.send('Echo: ' + message); // Пример ответа на сообщение от клиента
});
ws.send('Connected to the server'); // Пример отправки сообщения при подключении
});
```
4. В вашем файле, где инициализируется Express и обрабатываются обычные HTTP-запросы, добавьте обработчик для веб-сокетов:
```javascript
const express = require('express');
const app = express();
const server = app.listen(3000, () => {
console.log('Server started on port 3000');
});
server.on('upgrade', (request, socket, head) => {
wss.handleUpgrade(request, socket, head, (ws) => {
wss.emit('connection', ws, request);
});
});
```
5. Добавьте импорт и использование вашего файла `websocket.js` в вашем основном файле:
```javascript
const express = require('express');
const app = express();
// ...
require('./websocket'); // Здесь добавляем импорт и использование вашего файла
// ...
```
Теперь ваш сервер Express будет обрабатывать веб-сокеты в дополнение к обычным HTTP-запросам. Вы можете использовать браузерные клиенты веб-сокетов или инструменты для тестирования, чтобы проверить работу веб-сокетов.