Добрый день. Столкнулся с проблемой - не могу закрыть вебсокет 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)