Vue Socket Intercept для ошибок (401, et c) - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть сайт Vue, подключающийся через SOCKET к бэкэнду python flask. Проблема заключается в следующем: 1. Если я перезапускаю серверную часть в console.log, у меня появляется ошибка 401, но я все еще могу просматривать сайт для уже существующих данных. А в случае новых данных я вижу только ошибку загрузки. 2. Если сервер полностью остановлен, я получаю net :: ERR_EMPTY_RESPONSE, но все еще могу выполнять прежние действия.

Только после refre sh система обнаружила, что у меня возникла проблема, и заставила меня войти в систему. ..

Я попробовал другой подход, который я вижу на inte rnet, чтобы использовать store.getters.Authenticated, чтобы использовать это. Аутентифицирован в модулях, но система думает, что я в порядке. Я думаю, что я должен использовать перехватчики, но документы мне не понятны, и я не понимаю, где я должен использовать.

Некоторые коды: main. js

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app');

router. js

const router = new Router({
  routes: [
      {
          path: '*',
          name: 'all',
          component: Home
      }
  ],
    mode: 'history',
});
router.beforeEach((to, from, next) => {
    console.log("check if Auth:", store.getters.Authenticated);
    // it will always be auth.... so I didn't' show you the case when not auth
    next();
});
export default router

store. js

function socketConnect() {
    socket = new VueSocketIO({
        debug: true,
        connection: location.protocol + '//' + document.domain + ':' + location.port,
        vuex: {
            store,
            actionPrefix: 'SOCKET_',
            mutationPrefix: 'SOCKET_'
        },
    });

    getters: {
        Authenticated(state) {
            return state.isAut
        },
}

mutations: {
        authUser(state, Data) {
            if (Data) {
                state.isAut = true;
                state.user = Data;
                state.socket = socketConnect().io;
            } else {
                state.isAut = false;
                state.user = null;
                state.sites = null;
                state.map.markers = null;
                state.socket.disconnect()
            }
        },
}

PS У меня нет ничего, связанного с топором ios, и я не знаю, как его вставить куда-либо ...

...