Советую вместо обычного модуля ws использовать библиотеку Socket.io, а по поводу передачи данных с HTTP на ws - это делается так:
- Получаете с клиента нужные данные, например, с помощью POST запроса
- После этого нужно вызвать функцию, который возбуждает событие на стороне клиента, передав нужные данные
Клиент:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Socket.io</title>
<script src="/socket.io/socket.io.js"></script>
</head>
<body>
<script>
var socket = io();
socket.on("hello", function(serverData) {
alert(serverData);
});
</script>
</body>
</html>
сервер:
const app = require('express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const mySuperData = "hellooooo kuku";
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', (socket) => {
socket.emit("hello", mySuperData);
});
http.listen(3000, () => {
console.log('Сервер слушает порт 3000');
});
Пример использование
Node.js / Socket.io.
Node.js — обработка событий.