vue websocket 简单版没有心跳机制

本文介绍了一个使用WebSocket进行实时通信的应用实例,包括如何建立连接、发送用户ID到服务器及接收服务器消息的处理方法。此外还提供了包含心跳机制的进阶版实现链接。

组件:

import { websocketIp } from '../../config'

let ws = null

// 连接socket
function openWebsocket() {
  ws = new WebSocket(websocketIp) // ws://192.168.10.65:58890/webSocket
  ws.onopen = () => {
    if (ws.readyState === 1) {
      ws.send(
        JSON.stringify({
          // 连接成功将,用户ID传给服务端
          uid: JSON.parse(sessionStorage.getItem('userInfo')).id
        })
      )
    }
  }
  ws.onerror = err => {
    console.log('websocket error:', err)
    alert('websocket连接失败,建议退出重新登录')
  }
  return ws
}

export function getSocket1() {
  return new Promise((resolve, reject) => {
    if (!ws || ws.readyState !== 1) {
      openWebsocket()
    }
    resolve(ws)
  })
}

// 断开socket
export function closeSocket1() {
  if (ws) {
    ws.close()
    ws.onclose = function () {
      console.log('Socket关闭了')
    }
  }
}

export function getCarHireMsg1(fun) {
  return getSocket1().then((socket) => {
    socket.onmessage = msgEvent => {
      console.log(msgEvent)
      fun(msgEvent)
    }
  })
}

页面引用:

import { getCarHireMsg } from '@/socket/index'
created () {
  getCarHireMsg(this.getSock)
}
// 连接socket
getSock(data) {
      if (data.data !== '服务器连接成功!') {
        this.handleWebSocket(data.data)
      }
    },
// 处理socket 信息
handleWebSocket(content) {
  console.log(JSON.parse(content))
}

进阶版:包含心跳机制
https://blog.csdn.net/u013361179/article/details/115506472?spm=1001.2014.3001.5501

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝冰可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值