IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 在vue中使用websocket -> 正文阅读

[网络协议]在vue中使用websocket

话不多说,直接上代码吧

<script>
export default {
  name: "indexPage",
  props: {},
  components: {},
  data() {
    return {
      websock: null, //websocket对象
      maxReconnect: 5, //最大重连次数
      wsUrl: "ws://192.168.1.1",
    };
  },
  methods: {
    /**
     * 监听方法
     */
    // 初始化webSocket
    initWebSocket() {
      if (typeof WebSocket === "undefined") {
        alert("您的浏览器不支持WebSocket");
        return false;
      }
      console.log("初始化连接websocket");
      this.websock = new WebSocket(this.wsUrl);
      //连接成功
      this.websock.onopen = this.websocketonopen;
      //接收后端返回的数据
      this.websock.onmessage = this.websocketonmessage;
      //连接错误触发
      this.websock.onerror = this.websocketonerror;
      //断开连接触发
      this.websock.onclose = this.websocketclose;
    },
    //连接成功
    websocketonopen() {
      console.log("WebSocket连接成功");
      // 判断是否在正常连接状态
      if (this.websock.readyState === 1) {
        // 发送消息
        this.websockSend("1001");
      }
    },
    //接收后端返回的数据
    websocketonmessage(e) {
      let dataJson = JSON.parse(e.data);
    },
    //连接错误触发
    websocketonerror(e) {
      console.log(`连接发生错误的信息:`, e);
      // this.reconnect();

      // 其实可以不在这重连,因为发生错误后会自动断开连接,可能会导致触发两次重连
    },
    //断开连接触发
    websocketclose(e) {
      console.log("断开连接", e);
      this.reconnect();
    },
    // 尝试重连
    reconnect() {
      console.log("尝试重连");
      setTimeout(() => {
        // this.maxReconnect-- // 不做限制 连不上一直重连
        this.initWebSocket();
      }, 60 * 1000);
    },

    /**
     * 请求数据
     */
    //websock请求
    websockSend(command) {
      // 把后台需要的参数数据传过去
      let params = {};
      params.data = {
        command,
      };
      //发给后端的数据需要字符串化
      this.websock.send(JSON.stringify(params));
    },
  },
  mounted() {
    this.initWebSocket();
  },
  computed: {},
  watch: {},
  filters: {},
  beforeDestroy() {
    //页面销毁时关闭ws连接
    if (this.websock) {
      this.websock.close(); // 关闭websocket
    }
  },
};
</script>

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:35:43  更:2021-07-27 16:36:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 1:32:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码