@MishaXXL

Как на Socket сервере создавать подключения?

Запускаю сокет сервер
require('net').createServer(function (socket) { 
    console.log("connected"); 
  
    socket.on('data', function (data) { 
        console.log(data.toString())
    }); 
}) 
  
.listen(8082)


На клиенте подключаюсь к серверу
const connection = new WebSocket("ws://localhost:8082");

connection.onopen = (event) => {  
    console.log("Connection opened");
}

connection.onerror = (error) => {
    console.log(`WebSocket Error: ${error}`);
}

connection.onclose = (event) => {
    console.log("Connection closed");
}


В консоли спустя время выдает ошибку
(index):14 WebSocket connection to 'ws://localhost:8082/' failed: 
(anonymous) @ (index):14
(index):21 WebSocket Error: [object Event]
(index):25 Connection closed


Сервер выдает сообщение, что запрос пришел
connected
GET / HTTP/1.1
Host: localhost:8082
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
Upgrade: websocket
Origin: http://localhost:3000
Sec-WebSocket-Version: 13
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: PHPSESSID=1f3q4fo3pa47rfn3204gmuh49c; refreshToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MywibmFtZSI6IkFuZHkiLCJyb2xlIjpudWxsLCJpYXQiOjE2OTg3NjQ5MzIsImV4cCI6MTY5ODc2NTIzMn0.vjFNp6NuhHi8L21ScUdP3u2w54WBnqhbSxk62XT7q08; PGADMIN_LANGUAGE=en; refresh_token_id=1; refresh_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJ1c2VyX25hbWUiOiJBbmR5IiwidXNlcl9yb2xlIjpudWxsLCJpYXQiOjE3MDMzNjYyMDcsImV4cCI6MTcwMzM2NjUwN30.eaXslNhLFnw7ATAODKaLV0tJ-XsDRLs2neRyUCjcP7k; JSESSIONID.e55f81e7=node01gnf5p7uf1nqeiirhtgjoyp2u2.node0; screenResolution=1707x1067
Sec-WebSocket-Key: Z+4qaiYP9hb8IXlawapVEQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits


Но почему на клиенте не создалось соединение и как его создать?
Есть книга или статья, где с нуля описывается принцип работы сокет сервера на Node?
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Сокет и веб-сокеты - это разные вещи. Сокет - это системный интерфейс, а веб-сокеты - это протокол поверх TCP-IP сетевого соединения, а на уровне системы все соединения создаются через интерфейс под названием "Сокет". Так что либо вам на сервере надо использовать не сокет-сервер, а веб-сокет сервер, либо на клиенте подключаться используя сокет, а не веб-сокет. Спецификации веб-сокет протокола находятся здесь: https://datatracker.ietf.org/doc/html/rfc6455
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы