IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> websocket 接收发送数据 -> 正文阅读

[网络协议]websocket 接收发送数据

1.websocket 方法

import { message } from 'ant-design-vue'
import i18n from '@/langs/index.js'
let socket = null
let handleMessage = null
let handleErr = null
//初始化连接websocket,监听websocket各状态
function initSocket(url) {
  if (typeof WebSocket === 'undefined') {
    message.error(i18n.t('public.websocket.noWebSocket'))
  }
  socket = new WebSocket(url)
  socket.onopen = (e) => {
    socketOnOpen()
  }
  socket.onmessage = (e) => {
    socketOnMessage(e)
  }
  socket.onerror = (e) => {
    socketOnError()
  }
  socket.onclose = (e) => {}
}

//连接成功后的操作
function socketOnOpen(e) {}

//接收到websocket传过来message后的操作
function socketOnMessage(e) {
  //handleMessage为组件中传过来的自定义的方法,判断是否传递过来该方法
  if (handleMessage) {
    handleMessage(JSON.parse(e.data))
  }
}

//连接错误后的操作
function socketOnError(e) {
  if (handleErr) {
    handleErr()
  }
}

//向websocket传递参数数据
function socketSend(data) {
  setTimeout(() => {
    if (socket.readyState === 1) {
      socket.send(JSON.stringify(data))
    } else if (socket.readyState === 3) {
      message.error(i18n.t('public.websocket.connectFailed'))
    }
  }, 500)
}

/** 发送websocket请求
 * @param {String} url 连接的websocket地址
 * @param {Object} data 需要传递的参数
 * @param {Function} handleData 获取websocket传过来的数据后的处理函数
 * @param {Function} handleError websocket连接出错后的处理函数
 */
export function connectSocket(url, data, handleData, handleError) {
  handleMessage = null
  handleErr = null
  if (handleData) {
    handleMessage = handleData
  }
  if (handleError) {
    handleErr = handleError
  }
  initSocket(url)
  socketSend(data)
}

//关闭webSocket
export function closeSocket() {
  if (socket) {
    socket.close()
  }
}

2. 使用

import { connectSocket, closeSocket } from './socket.js'

convert() {
 let data = {}
 let socketUrl = ''
 connectSocket(socketUrl, data, this.handleMessage)
},
handleMessage(data) {
 console.log(data)
}
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:56:03  更:2022-03-08 22:59:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:27:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码