websocket 使用示例

websocket 使用示例

前言

即时通讯webSocket 的使用

html中使用

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

javascript 复制代码
<!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依赖

javascript 复制代码
npm install websocket

2、代码

javascript 复制代码
<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 {
        // 实例化socket
        socket = 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依赖

javascript 复制代码
npm install websocket

2、代码

javascript 复制代码
<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{
                // 实例化socket
                this.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>
相关推荐
Hill_HUIL1 小时前
学习日志23-路由高级特性(静态路由)
网络·学习
cyhty1 小时前
静态路由实验报告
网络·网络安全
Chen放放1 小时前
【华三】VXLAN-三层集中式网关配置
运维·网络
花火Neko`1 小时前
openwrt防火墙安全配置
网络·安全·智能路由器·istoreos
Wen1 小时前
小米路由器4A千兆刷OPENWRT(简单快速)
网络·经验分享·智能路由器
碎梦归途1 小时前
思科网络设备配置命令大全,涵盖从交换机到路由器的核心配置命令
linux·运维·服务器·网络·网络协议·路由器·交换机
七维大脑虚拟机1 小时前
飞牛NAS公网IPv6+DDNS远程访问零延迟教程
运维·服务器·网络
徐同保2 小时前
解决 Vue 3 项目 TypeScript 编译错误:@types/lodash 类型定义不兼容
redis·网络协议·https
珠海西格电力科技2 小时前
微电网系统架构设计:并网/孤岛双模式运行与控制策略
网络·人工智能·物联网·系统架构·云计算·智慧城市
浩浩测试一下2 小时前
从Web 到 域控 <----> 企业级内网渗透思路
网络