前端使用webscoket

前端

javascript 复制代码
<template>
  <div class="wrap">
    <button @click="socketEmit">连接Socket</button>
    <button @click="socketSendmsg">发送数据</button>
  </div>
</template>

<script>
export default {
  data(){
    return {
      randomId:null,
    }
  },
  methods:{
    socketEmit(){
      // 开始连接 socket
      this.$socket.open();
      // 订阅事件,testCall 是与后端约定好的名称
      this.sockets.subscribe('testCall', (res) => {
        if(res.code == 200 && res.randomId === this.randomId){
          console.log('召唤成功')

        }
      })
    },
    // 发送消息
    socketSendmsg(){
      this.randomId = Math.random();
      // testCall 是与后端约定好的名称
      this.$socket.emit('testCall', {
        "randomId": this.randomId,
        "deviceId": "123456"
      });
    },
  },
  sockets: {
    connect: function () {
      console.log('连接成功')
    },
    disconnect: function () {
      console.log('断开连接')
    },
    reconnect: function () {
      console.log('重新连接')
    },
  },
  beforeDestroy(){
    // 关闭 Socket
    this.sockets.unsubscribe('testCall');
    this.$socket.close();
  },
}
</script>

main.js

javascript 复制代码
import VueSocketIO from 'vue-socket.io'

Vue.use(new VueSocketIO({
  // 生产环境建议关闭,开发环境打开(在控制台看到socket连接和事件监听的信息)
  debug: true,
  connection:'http://metinseylan.com:1992',
  options:{
    // 创建时是否自动连接 我们这里设定为false,在指定页面再开启
    autoConnect: false,
    // 路径(默认值:/socket.io/)
    path: "/my-app/",
    // 目前有两种传输方式:HTTP long-polling(可简称:polling)、WebSocket
    transports: ['polling'],
    // 附加请求头(在服务器端的 socket.handshake.headers 对象中找到)
    extraHeaders:{},
  },
}))
相关推荐
小桥风满袖34 分钟前
极简三分钟ES6 - ES8中字符串扩展
前端·javascript
张拭心34 分钟前
这就是流量的力量吗?用豆包 AI 编程做的xhs小组件帖子爆了
前端·ai编程·豆包marscode
少年阿闯~~38 分钟前
CSS3的新特性
前端·javascript·css3
IT_陈寒44 分钟前
React性能优化:这5个Hook技巧让我的组件渲染效率提升50%(附代码对比)
前端·人工智能·后端
智能化咨询1 小时前
【Linux】【实战向】Linux 进程替换避坑指南:从理解 bash 阻塞等待,到亲手实现能执行 ls/cd 的 Shell
前端·chrome
Anson Jiang1 小时前
浏览器标签页管理:使用chrome.tabs API实现新建、切换、抓取内容——Chrome插件开发从入门到精通系列教程06
开发语言·前端·javascript·chrome·ecmascript·chrome devtools·chrome插件
掘金安东尼1 小时前
黑客劫持:周下载量超20+亿的NPM包被攻击
前端·javascript·面试
剑亦未配妥2 小时前
移动端触摸事件与鼠标事件的触发机制详解
前端·javascript
人工智能训练师8 小时前
Ubuntu22.04如何安装新版本的Node.js和npm
linux·运维·前端·人工智能·ubuntu·npm·node.js