Задать вопрос
@ekaramazov

Как закрыть/разорвать соединение вебсокет при определённом условии в ws.onmessage?

Добрый день. Столкнулся с проблемой - не могу закрыть вебсокет ws.close(); посылая с сервера например слово "close". В коде не все примеры моего маразма, но ни один не сработал.
Нужно в ws.onmessage при определённом условии if отключать соединение.
function create(url) {      
var flag = false;
        ws = new WebSocket(url);

        ws.onopen = function () {
            console.log('WebSocket opened ' );
        }
        ws.onmessage = function (e) {            
            if (e != 'close') { // не важно что тк перед этим obj[chart_pair] = JSON.parse(e.data); // добавил чтоб не обращали внимание на условие - тут может быть что угодно
               /********/
            } else {
// если вызываю функцию тут или пытаюсь закрыть то ошибка Uncaught TypeError: ws.close is not a function at my_close
                //ws.shutdownInput();
                //ws.shutdownOutput();
ws.close();
                my_close();                
                flag = true;
                return false;
            }
        }
        ws.onclose = function () {
            console.log('WebSocket closed');
            preloaderStart();            
        }
        function my_close() {            
            ws.close();
        }
// если вызываю тут или закрываю то всё нормально, но мне нужно по приходу сообщения вызывать/закрывать
        
        if(flag) ws.close();

        //ws.onerror = function () {run_server();}; // возможно перезагрузка страницы
    }

С сервера каждую секунду идут данные и нужно в какой-то момент перестать их получать совсем (имею ввиду консоль хрома network вкладка frames)
  • Вопрос задан
  • 679 просмотров
Подписаться 1 Сложный Комментировать
Решения вопроса 1
@ekaramazov Автор вопроса
var ws = new WebSocket(url); и всё заработало!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
19 дек. 2024, в 02:11
15000 руб./за проект
19 дек. 2024, в 02:09
11000 руб./за проект
19 дек. 2024, в 00:46
30000 руб./за проект