Vue中使用websocket的正确使用方法

首先写一个公共方法 socket.js

functiongetSocket(url, params, callback) {

  let socket;

  if(typeof(WebSocket) === 'undefined') {

    console.log('您的浏览器不支持WebSocket');

  } else{

    console.log('您的浏览器支持WebSocket');

    // 初始化 WebSocket 对象,指定要连接的服务器地址与端口建立连接

    socket = newWebSocket(url);

    // 打开事件

    socket.onopen = function() {

      console.log('Socket 已打开');

      socket.send(params);

    };

    // 获得消息事件

    socket.onmessage = function(msg) {

      // 发现消息进入, 开始处理前端触发逻辑

      callback(msg, socket);

    };

    // 关闭事件

    socket.onclose = function() {

      console.log('Socket 已关闭');

    };

    // 发生了错误事件

    socket.onerror = function() {

      console.log('Socket 发生了错误,请刷新页面');

      // 此时可以尝试刷新页面

    };

  }

}

export {

  getSocket

};


使用

test.vue

<script>

import {getSocket} from '@/utils/socket.js';

export default{

  data() {

    return{

      wsData: {}, // 保存 websocket 数据对象

      form: { // 表单

        name: '',

        age: ''

      }

    }

  },

  beforeDestroy() {

    this.wsData.close(); // 关闭 websocket

  },

  created() {

    this.getSocketData();

  },

  methods: {

    // 获取数据

    getSocketData() {

      let params = this.form;

      getSocket(

        `ws://path`,

        JSON.stringify(params),

        (data, ws) => {

          console.log(data, ws);

          // 保存数据对象, 以便发送消息

          this.wsData = ws;

        }

      );

    },

    // 发送数据

    sendSocketData() {

      let params = this.form;

      params.name = 'xx';

      params.age= '18';

      this.wsData.send(JSON.stringify(params));

    }

  }

}

</script>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 建议看我写的另外一篇文章 js封装一个websocket 以下原文,不太成熟,可以不用看了 第一次使用websoc...
    Sven0706阅读 181,865评论 19 67
  • 英文文档,一开始我也是抗拒的,边翻译边看,也就花费了1个小时基本就阅读过了,我的英文基础其实很差。附上链接:链接:...
    lonecolonel阅读 13,458评论 3 1
  • 原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-WebSo...
    敢梦敢当阅读 12,885评论 0 50
  • 一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来...
    huoyl0410阅读 11,044评论 3 2
  • 她二十六了,和男朋友走过熙熙攘攘的街,他扯了下那条粉红色的卡哇伊裙子,说试试吧。她抿着嘴摇了摇头。 二十六了,不知...
    既见君子呀阅读 1,657评论 0 0

友情链接更多精彩内容