• websocket在vue项目中的使用


    之前与.net工程师联合实时通信,使用的是基于websocket封装的signalr,这几次是和java工程师合作,开始了在vue中使用websocket的体验。具体怎么配置,在此记录一下,以备不时之需。
    1.package.json的dependencies中添加"sockjs-client"和"stompjs";
    2.在需要的页面中引入:
    import SockJS from "sockjs-client";
    import Stomp from "stompjs";
    3.创建连接:
    methods: {
    initWebSocket() {
    let _this = this;
    _this.connect();
    // 断开重连机制,尝试发送消息,捕获异常发生时重连
    _this.timer = setInterval(() => {
    try {
    // console.log("建立了连接")
    _this.stompClient.send("test");
    } catch (err) {
    console.log("断线了: " + err);
    _this.connect();
    }
    }, 5000);
    }
    4. 连接函数:
    connect() {
    // debugger
    let _this= this;
    let sock = new SockJS(process.env.SOCKJS_URL);
    let stompClient = Stomp.over(sock);
    // 不打印日志
    // stompClient.debug = null;
    me.stompClient = stompClient;
    this.$store.commit("setStompClient", stompClient); //保存在store中的{}
    _this.headers = {
    // Authorization:getToken() //假设登录后使用token验证,传递token
    };
    _this.stompClient.connect(_this.headers, function (frame) {
    // 连接成功
    // console.log('Connected:' + frame);// connected
    //实时信息
    // 子组件要触发的函数
    _this.successCallback();
    }),
    () => {
    _this.reconnect(process.env.SOCKJS_URL, _this.successCallback);
    };
    }

    备注:process.env.SOCKJS_URL是指配置在config文件夹中dev.env.js测试环境中的SOCKJS_URL;successCallback函数中放置连接成功后要被调用的函数

  • 相关阅读:
    .Net利用core实现简单的加解密例程全解析
    HTTPS抓包,利用telnet检查网络连接的几种方式
    每个人都应该知道的(cJSON)JSON处理库
    HashMap和Hashtable的区别
    Map集合
    Set集合
    同步异步以及泛型
    ArrayList的输出方式以及因子增长数
    (转)C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
    数据结构复习---最短路径
  • 原文地址:https://www.cnblogs.com/jocelyn11/p/14272847.html
Copyright © 2020-2023  润新知