1

Закрытие сессии

(01/10/2020 22:08:34 отредактировано belokopytoven)

Тема: Закрытие сессии

Добрый день может глупый вопрос. Пришу приложение на реакте с редюсером.

Столкнулся с проблемой, что при повторном логоне предыдущая сессия не закрывается а открывает еще один поток. В итоге в браузере
видно постоянные запросы к виалон. Вопрос как завершить или удалить предыдущую сессию

    session = new Wialon.Session(url,
         {
             eventsTimeout: 5
         }
    );

    // set Remote API 'svc' param
    var svc = 'token/login';
    // set Remote API 'params' param
    var params = {
        token: token
    };

  

    // Execute request
    session.execute(svc, params, function (data) {
        if (data.error) {
            dispatch(alertActions.error(`Ошибка соединения с Wialon: ${data.reason}`));
        } else {



    var params = {spec: [{'type': 'col', 'data': items, 'flags': 0x411, 'mode': 0}]};

    // load items to current session
    session.execute('core/update_data_flags', params, function (data) {
        dispatch(FetchWialonDataSuccess(data))

    });
        }
    });

Как при повторном вызове этого метода не создавать еще один поток или закрыть существующий

2

Закрытие сессии

Re: Закрытие сессии

belokopytoven
Если хочется удалить сессию, то нужно вызвать `session.execute('core/logout', {}, () => {})`. Внутри этот метод вызовет _logoutCallback и убьёт сессию.

Обычно вылогинивание без перезагрузки страницы не требуется. Страница загрузилась - логин, F5 - снова логин, вкладку закрыли - на сервере сессия умрёт через 5 минут, на фронте её возобновить возможности не. Расскажите, пожалуйста, зачем вам несколько сессий на странице?

3

Закрытие сессии

(01/10/2020 22:07:10 отредактировано belokopytoven)

Re: Закрытие сессии

shmi пишет:

belokopytoven
Если хочется удалить сессию, то нужно вызвать `session.execute('core/logout', {}, () => {})`. Внутри этот метод вызовет _logoutCallback и убьёт сессию.

Обычно вылогинивание без перезагрузки страницы не требуется. Страница загрузилась - логин, F5 - снова логин, вкладку закрыли - на сервере сессия умрёт через 5 минут, на фронте её возобновить возможности не. Расскажите, пожалуйста, зачем вам несколько сессий на странице?

Спасибо за ответ. Да в том то и дело что несколько и не нужно. Но если я сначала открываю сессию, а потом к ней обращаюсь с новым запросом то пишет ошибка авторизации. Хотя сессия жива. В итоге каждый раз как отрабатывается акшен в редаксе происходит логон и создается поток и так до бесконечности. В итоге перевел все на бекенд ноду. И уже с ноды получаю данные.

4

Закрытие сессии

Re: Закрытие сессии

Очень странное поведение, предположу всё же, что ошибка где-то в логике приложения