• 用websocket建立远程连接(vue)


    一。用引入js方式

    1  在main.js中引入

    //引入websocket
    import '@/assets/js/sockjs.min.js';
    import '@/assets/js/stomp.min.js';
    2  在代码里书写
    //与服务器建立==>监听是否被扫
    scanConnect(){
    this.refreshConnect();
    var socket = new SockJS('http://118.178.118.114/zjzwfw-zwmp-api/endpoint-websocket');
    this.stompClient = Stomp.over(socket);
    var _self=this;
    _self.stompClient.connect({'token':sessionStorage.getItem('token')}, function (frame) {
    console.log(11, _self.stompClient);
    });
     
    });
    },
    //取消与服务器端的链接
    disconnect(){
    if (this.stompClient != null) {
    this.stompClient.disconnect();
    console.log("Disconnected",this.stompClient);
    }
    },
    二。用npm构建
    // 安装命令行: npm install sockjs-client 和npm install @stomp/stompjs
    // 安装并引入相关模块
    import SockJS from 'sockjs-client';
    import Stomp from 'stompjs';
    export default {
     data() {
      return {
      dataList: []
      };
     },
     mounted:function(){
      this.initWebSocket();
     },
     beforeDestroy: function () {
      // 页面离开时断开连接,清除定时器
      this.disconnect();
      clearInterval(this.timer);
     },
     methods: {
      initWebSocket() {
      this.connection();
      let self = this;
      // 断开重连机制,尝试发送消息,捕获异常发生时重连
      this.timer = setInterval(() => {
       try {
       self.stompClient.send("test");
       } catch (err) {
       console.log("断线了: " + err);
       self.connection();
       }
      }, 5000);
      },
      removeTab(targetName) {
      console.log(targetName)
      },
      connection() {
      // 建立连接对象
      this.socket = new SockJS('http://xxxxxx:8089/ws');//连接服务端提供的通信接口,连接以后才可以订阅广播消息和个人消息
      // 获取STOMP子协议的客户端对象
      this.stompClient = Stomp.over(this.socket);
      // 定义客户端的认证信息,按需求配置
      var headers = {
       login: 'mylogin',
       passcode: 'mypasscode',
       // additional header
       'client-id': 'my-client-id'
      };
      // 向服务器发起websocket连接
      this.stompClient.connect(headers,(frame) => {
       this.stompClient.subscribe('/topic/chat_msg', (msg) => { // 订阅服务端提供的某个topic
       consolel.log(msg.body); // msg.body存放的是服务端发送给我们的信息
       });
      }, (err) => {
        
      });
     
      },
      disconnect() {
      if (this.stompClient != null) {
       this.stompClient.disconnect();
       console.log("Disconnected");
      }
      }
     }
    };
  • 相关阅读:
    .NET控件ZedGraph使用帮助
    .NET多线程编程(转)
    DataTable 添加列、设置主键、添加行、查询、更新
    一个有用的Windows服务小程序——用来完成Server端的Socket通信[转载]
    (周星驰版)学习委托的最好实例 (转载+自己补充了注释)
    这样写
    DataTable添加列和行的方法
    简单工厂之简单模型(uml)
    学了delegate委托还有event事件的联系,基本学明白了。先总结一下吧。[转载]
    HDU_1240——三维空间DFS
  • 原文地址:https://www.cnblogs.com/miaSlady/p/10000295.html
Copyright © 2020-2023  润新知