Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 238

Как исправить WebSocket connection to 'ws://localhost:' faile ?

07.09.2023, 14:34. Показов 9447. Ответов 8

Студворк — интернет-сервис помощи студентам
День добрый
Для работы с streamEvents и fetch() все подключения к серверу проходили отлично.
С нуля решил писать на WebSocket() проявилась ошибка

Code
1
// main.ts:6 WebSocket connection to 'ws://localhost:7070/' failed:
Уже и статьи читал, брандмауэр отключил, антивирус отключил, порты проверил и нейросети задействовал, не могу ответ найти как избавится от ошибки.

Кто видит источник ошибки?

//serve.ts
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const http = require('http'),
    Koa = require('koa'),
    json = require('koa-json'),
    cors = require('@koa/cors'),
    // Router = require('koa-router'),
    Logger = require('koa-logger'),
    WS = require('ws'),
    { koaBody } = require('koa-body'),
    { v4 } = require('uuid'),
    db = require('./db'),
 
// все остальное закоммител
 
const server = http.createServer(app.callback()),
    wsServer = new WS.Server({ server });
 
// ...
app.listen(7070, (err: any) => {
    if (err) {
        console.error('Port, we gets Err: ', err);
        return
    }
    console.warn('Server started on localhost:');
});
// main.ts
JavaScript
1
const wsserver = new WebSocket(`ws://localhost:7070`);
Вроде все просто, вчем может быть проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.09.2023, 14:34
Ответы с готовыми решениями:

Ошибка: WebSocket connection to 'wss://localhost:8777/' failed: Error in connection establishment: net::ERR_CONNECTION_R
На локальном сервере работает, на нормальном нет. Без SSL не работало, подключил, тоже не работает. var socket = new...

localhost WebSocket
Хочу подключиться к локальному вебсокету. const webSocket = new WebSocket("ws://localhost:8080/"); webSocket.onopen = () => { ...

Простой WebSocket на 'localhost'
project: server.js package.json index.html node_modules server.js : const...

8
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3833 / 1677 / 431
Регистрация: 14.03.2022
Сообщений: 4,234
07.09.2023, 14:40
Цитата Сообщение от Tryd0g0lik Посмотреть сообщение
Кто видит источник ошибки?
Я не нашел app в serve.ts...
0
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 238
07.09.2023, 15:18  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Я не нашел app в serve.ts..
JavaScript
1
app = new Koa();
вот)
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3833 / 1677 / 431
Регистрация: 14.03.2022
Сообщений: 4,234
07.09.2023, 16:16
Tryd0g0lik, я, как человек интересующийся WebSocket, решил его запустить у себя...
Использовал такую статейку https://habr.com/ru/articles/546758/
// сервер
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const WebSocket = require('ws')
 
const wsServer = new WebSocket.Server({port: 9000})
wsServer.on('connection', onConnect)
 
//
function onConnect(wsClient) {
    console.log('Новый пользователь');
    // отправка приветственного сообщения клиенту
    wsClient.send('Привет');
    wsClient.on('message', function(message) {
        /* обработчик сообщений от клиента */
        const obj = JSON.parse(message)
        console.log(obj)
        wsClient.send('Данные получены...')
    })
    wsClient.on('close', function() {
        // отправка уведомления в консоль
        console.log('Пользователь отключился');
    })
 }
// клиент
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html>
<html data-theme='light'>
<head>
<meta charset="utf-8" />
</head>
<body>
<label>
    <span>Текст сообщения</span>
    <input />
</label>
<button>Отправить сообщение</button>
 
 
<script>
const myWs = new WebSocket('ws://localhost:9000');
// обработчик проинформирует в консоль когда соединение установится
myWs.onopen = function () {
  console.log('подключился');
};
// обработчик сообщений от сервера
myWs.onmessage = function (message) {
  console.log('Message: %s', message.data);
};
// функция для отправки echo-сообщений на сервер
function wsSendEcho(value) {
  myWs.send(JSON.stringify({action: 'ECHO', data: value.toString()}));
}
// функция для отправки команды ping на сервер
function wsSendPing() {
  myWs.send(JSON.stringify({action: 'PING'}));
}
document.querySelector('button').addEventListener('click', _ => {
    const v = document.querySelector('input').value
    wsSendEcho(v)
})
 
 
</script> 
</body>
</html>
У меня все работает...

Что я заметил в наших серверах...
Мой
JavaScript
1
const wsServer = new WebSocket.Server({port: 9000})
Твой
JavaScript
1
2
const server = http.createServer(app.callback()),
    wsServer = new WS.Server({ server });
Т.е. ты пытаешься запихивать вэб-сервер в сокет-сервер...
0
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 238
08.09.2023, 06:31  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
У меня все работает...
Везет/

Цитата Сообщение от krvsa Посмотреть сообщение
Использовал такую статейку https://habr.com/ru/articles/546758/
Данная статья отличается от этой от этой лишь годом публикации.
Вот этот вариант у меня.

у да ладно.
Пробовал чисто скопировать и исправить порты.
На клиенте в консоле все таже ошибка.
Что интересно - NetWork в DevTools клиента без ошибок.
Уже перепробовал разные варианты.

Смотрел порты, они свободны. Но главное SSE с fetch-ом , то работали
Миниатюры
Как исправить WebSocket connection to 'ws://localhost:' faile ?   Как исправить WebSocket connection to 'ws://localhost:' faile ?   Как исправить WebSocket connection to 'ws://localhost:' faile ?  

Как исправить WebSocket connection to 'ws://localhost:' faile ?  
0
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 238
08.09.2023, 06:39  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Т.е. ты пытаешься запихивать вэб-сервер в сокет-сервер...
Посмотри в раздел "Пример работы простейшего api." Вижу тоже самое.
Или нет?
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3833 / 1677 / 431
Регистрация: 14.03.2022
Сообщений: 4,234
08.09.2023, 07:23
Цитата Сообщение от Tryd0g0lik Посмотреть сообщение
Вижу тоже самое
Похоже...
0
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 238
08.09.2023, 07:28  [ТС]
Что на данный момент
// main.ts
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const wsserver = new WebSocket("ws://localhost:7070");
//...
function sendToServe(e: any) {
            e.preventDefault();
 
            if (input.value.length < 1) { console.log('Длина INPUT = 0:', input.value.length); return }
            console.log('SUBMIT'),
                console.log('Прослушка -  получили событие Inpuut из формы New-Login');
            resultOfFormIdentification = JSON.stringify(fun.author(e));
            if (resultOfFormIdentification === '{"newLogin":""}') return
            console.log('test 01: ', resultOfFormIdentification);
        // debugger;
            console.log('New-Login отправлено!');
 
            wsserver.onopen = (ctx: any) => {
 
                ctx.send(JSON.stringify(resultOfFormIdentification));
                console.log('Соединение WS установлено.')
            };
 
            wsserver.onclose = (e: any) => {
                if (e.wasClean) {
                    console.warn('Соединение WS закрыто чисто');
                }
                else {
                    console.error('Обрыв WS соединения')
                    console.log(e);
                }
            }
        }
Что получаем в процессе выполнения кода видно на скрина

Может особенность в сервере
// package.json
JavaScript
1
2
3
4
5
 
"scripts": {
     "start": "nodemon  --watch ./ --ignore dist  ./src/app/serve.ts",
 
 }
Миниатюры
Как исправить WebSocket connection to 'ws://localhost:' faile ?   Как исправить WebSocket connection to 'ws://localhost:' faile ?  
0
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 238
08.09.2023, 11:27  [ТС]
Что ответил ChatGPT ))

Ошибка "WebSocket connection to 'ws://localhost:' failed" может возникать по нескольким причинам. Ниже представлены несколько возможных вариантов исправления этой ошибки:

1. Проверьте, что ваш WebSocket-сервер работает правильно и слушает указанный порт. Убедитесь также, что серверная часть вашего приложения запущена и выполняется без ошибок.

2. Проверьте, что вы правильно указываете порт в URL-адресе WebSocket. Убедитесь, что порт, указанный в URL, совпадает с тем, который ваш WebSocket-сервер слушает.

3. Убедитесь, что ваш браузер не блокирует WebSocket-соединения. Некоторые браузеры, в частности Google Chrome, не позволяют устанавливать WebSocket-соединения с localhost без использования безопасного протокола (wss://) или без HTTPS. Чтобы обойти это ограничение, вы можете попробовать добавить исключение для вашего локального сервера или использовать HTTPS вместо HTTP.

4. Если вы используете прокси-сервер или брандмауэр, убедитесь, что он не блокирует WebSocket-соединения. Некоторые прокси-серверы или брандмауэры могут блокировать их по умолчанию. Проверьте настройки вашего прокси-сервера или брандмауэра и убедитесь, что WebSocket-соединения не блокируются.

5. Проверьте, что используемая вами библиотека или фреймворк поддерживает WebSocket. Убедитесь, что вы правильно настроили и использовали объект WebSocket в вашем коде. В некоторых случаях может потребоваться установка или добавление дополнительных зависимостей для поддержки WebSocket.

6. Проверьте консоль разработчика вашего браузера на наличие других ошибок или сообщений, которые могут помочь выяснить причину ошибки. Это может помочь вам найти дополнительные подробности о проблеме и определить, как ее решить.
Но все вроде нормально.

В брандмауэр даже IDE прописал )

Добавлено через 3 часа 53 минуты
Вопрос закрыт.
Причина ошибки была в том, что прослушка висела на
JavaScript
1
app.listen(7070, () => console.log("Server started"));
Но у меня работа идет с
JavaScript
1
2
const server = http.createServer(app.callback);
const webSocketServer = new WS.Server({ server });
Поэтому прослушка должна висеть на
JavaScript
1
[JS]server.listen(7070, () => console.log("Server started"));
[/JS]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.09.2023, 11:27
Помогаю со студенческими работами здесь

WebSocket connection failed
WebSocket connection to 'ws://steamcommunity.com/login/home/?goto=%2Ftradeoffer%2Fnew%2F%3Fpartner%3DURL:8305' failed: Error during...

Передача данных через запрос WebSocket connection
Доброе время суток. Я пишу чат . Использую tomacat 7 server . Я решил работать с websockets . Проблема заключается в том чтоб передать...

Как "сочинить" Connection к БД в Интернете, работая в localhost-e
Как 'сочинить' Connection к БД в Интернете, работая в localhost-e.

как исправить connection timed out?
Я написал программу отправки на емаил письмо !все компилится но выюивает ошибку socked Error #10060 connection timed out ! Как ее...

Как исправить ошибку 'localhost' (10061)
Вечер добрый, помогите решить проблему. Работал сегодня весь день с программой все было нормально, и мне потребовалось установить драйвер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru