微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检测“net::ERR_CONNECTION_REFUSED”

如何解决如何检测“net::ERR_CONNECTION_REFUSED”

我使用 Vue 2,我想检测 sockjs 错误显示通知。 (如“连接丢失”、“连接超时”等) 我不知道该怎么做

enter image description here

解决方法

浏览器有一个名为 navigator.onLine 的内置方法,它返回 truefalse。现在要监视连接更改,您可以在窗口上添加一个事件侦听器,

window.addEventListener('offline',(e) => { console.log('offline'); });
window.addEventListener('online',(e) => { console.log('online'); });

您可以使用以下内容将其合并到 Vue 组件中:

export default {
  data() {
    return {
      online: navigator.onLine
    };
  },mounted() {
    window.addEventListener("online",this.onchange);
    window.addEventListener("offline",this.onchange);
    this.onchange();
  },beforeDestroy() {
    window.removeEventListener("online",this.onchange);
    window.removeEventListener("offline",this.onchange);
  },methods: {
    onchange() {
      this.online = navigator.onLine;
      this.$emit(this.online ? "online" : "offline");
    }
  }
};

然后使用 v-if="!online" 有选择地呈现您的离线横幅。


或者,看看:v-offline,它通过 ping 一个端点来工作,它的优点是能够检测用户何时在线但互联网连接(加载)很差,但是一种整体效率较低的方法。

import offline from 'v-offline';

export default {
  components: {
    offline
  },methods: {
    handleConnectivityChange(status) {
      console.log(status);
    }
  }
}

对于大多数 sock.js 方法,您可以从回调返回的 Event 参数中获取此信息。但对于检测网络连接和其他常见任务,如上文所述,在本机执行通常更可靠。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。