• 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函数中放置连接成功后要被调用的函数

  • 相关阅读:
    php mysqli 查询个门店数据(面向对象)
    php 上锁 概述
    php 小程序渠道推广,转发
    php 微信公众号获取用户信息
    php 小程序获取用户信息
    php 生成小程序二维码
    1、收集日志至指定主题
    hihoCoder 网络流四·最小路径覆盖
    hihocoder1393 网络流三·二分图多重匹配
    hihocoder1398 网络流五之最大权闭合子图
  • 原文地址:https://www.cnblogs.com/jocelyn11/p/14272847.html
Copyright © 2020-2023  润新知