当前位置: 首页 > news >正文

websocket 使用示例

websocket 使用示例

  • 前言
  • html中使用
  • vue3中使用
    • 1、安装websocket依赖
    • 2、代码
  • vue2中使用
    • 1、安装websocket依赖
    • 2、代码

前言

即时通讯webSocket 的使用
在这里插入图片描述

html中使用

以下是一个简单的 HTML 页面示例,它连接到 WebSocket 服务器并包含一个文本框、一个发送按钮以及 WebSocket 连接、读取和关闭事件的监听。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>WebSocket 示例</title><script>// 1. 创建一个 WebSocket 对象let socket = new WebSocket("ws://192.168.22.199/WebSocket/");// 2. 监听 WebSocket 连接事件socket.addEventListener("open", function (event) {console.log("连接事件成功:", event);});// 3. 监听 WebSocket 收到消息事件socket.addEventListener("message", function (event) {console.log("接收到的消息事件:", event.data);});// 4. 监听 WebSocket 关闭事件socket.addEventListener("close", function (event) {console.log("关闭WebSocket:", event);});// 5. 监听 WebSocket 出错事件socket.addEventListener("error", function (event) {console.error("WebSocket error报错:", event);});// 6、webSocket发送消息function sendMessage() {let message = document.getElementById("messageInput").value;if (message) {socket.send(message);}}</script></head><body><h1>WebSocket 示例</h1><input type="text" id="messageInput" placeholder="请输入要发送的信息" /><button onclick="sendMessage()">Send</button></body>
</html>

vue3中使用

1、安装websocket依赖

npm install websocket

2、代码

<template><div><div><button @click="send">发消息</button></div></div>
</template><script>
import { defineComponent, ref, onUnmounted, onMounted } from 'vue'export default defineComponent({name: 'coPy',setup () {const path = 'ws://192.168.0.200:8005/qrCodePage/ID=1/refreshTime=5'let socket = ''const open = () => {console.log('socket连接成功')}const error = () => {console.log('连接错误')}const getMessage = (msg) => {console.log(msg.data)}const send = () => {socket.send('输入成功')console.log('消息发送成功')}const close = () => {console.log('socket已经关闭')}const initWs = () => {if (typeof (WebSocket) === 'undefined') {alert('您的浏览器不支持socket')} else {// 实例化socketsocket = new WebSocket(path)// 监听socket连接socket.onopen = open// 监听socket错误信息socket.onerror = error// 监听socket消息socket.onmessage = getMessage}}onMounted(() => {initWs()})onUnmounted(() => {close()})return {}}
})
</script>
<style lang="less" scoped>
</style>

vue2中使用

1、安装websocket依赖

npm install websocket

2、代码

<template><div><button @click="send">发消息</button></div>
</template><script>
export default {data () {return {path:"ws://192.168.0.200:8005/qrCodePage/ID=1/refreshTime=5",socket:""}},mounted () {// 初始化this.init()},methods: {init: function () {if(typeof(WebSocket) === "undefined"){alert("您的浏览器不支持socket")}else{// 实例化socketthis.socket = new WebSocket(this.path)// 监听socket连接this.socket.onopen = this.open// 监听socket错误信息this.socket.onerror = this.error// 监听socket消息this.socket.onmessage = this.getMessage}},open: function () {console.log("socket连接成功")},error: function () {console.log("连接错误")},getMessage: function (msg) {console.log(msg.data)},send: function () {this.socket.send(params)},close: function () {console.log("socket已经关闭")}},destroyed () {// 销毁监听this.socket.onclose = this.close}
}
</script><style></style>

相关文章:

  • 实现QT中qDebug()的日志重定向
  • GPT-prompt大全
  • 【DevOps基础篇】容器化架构基础设施监控方案
  • 20240312-2-贪心算法
  • 基于Qt 和python 的自动升级功能
  • Docker:部署微服务集群
  • 在没有推出硬盘的情况下,重启mac电脑,外接移动硬盘无法加载显示?
  • 国内哪个工具可以平替chatgpt?国内有哪些比较好用的大模型gpt?
  • ‘UnityEngine.Application‘ does not contain a definition for isBatchMode
  • 迷茫了!去大厂还是创业?
  • 从零开始:神经网络(1)——神经元和梯度下降
  • Covalent Network (CQT) 通过统一 API 集成,为 Gnosis Chain 的 AI 潜力赋能
  • 无涯教程-PHP - range()函数
  • java正整数校验
  • jmeter发送请求参数如何使用变量
  • [LeetCode] Wiggle Sort
  • 「译」Node.js Streams 基础
  •  D - 粉碎叛乱F - 其他起义
  • express如何解决request entity too large问题
  • Git初体验
  • golang中接口赋值与方法集
  • idea + plantuml 画流程图
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • js面向对象
  • MySQL数据库运维之数据恢复
  • Next.js之基础概念(二)
  • October CMS - 快速入门 9 Images And Galleries
  • Odoo domain写法及运用
  • Promise面试题,控制异步流程
  • Promise面试题2实现异步串行执行
  • windows下mongoDB的环境配置
  • 读懂package.json -- 依赖管理
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 技术:超级实用的电脑小技巧
  • 每天一个设计模式之命令模式
  • 面试总结JavaScript篇
  • 排序算法之--选择排序
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 详解NodeJs流之一
  • 新书推荐|Windows黑客编程技术详解
  • 用简单代码看卷积组块发展
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 怎么将电脑中的声音录制成WAV格式
  • ​低代码平台的核心价值与优势
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (笔试题)合法字符串
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (循环依赖问题)学习spring的第九天
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)基于IDEA的JAVA基础12