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>
相关推荐
AvatarAI_Walker2 小时前
2026年7月安徽本地健康IP孵化行业观察:不同需求下的服务方向梳理
大数据·网络·tcp/ip·搜索引擎·精选
一棵星2 小时前
WebSocket 长连接不稳?一次完整的排查与修复之旅
网络·websocket·网络协议
发量惊人的中年网工2 小时前
AI服务器托管怎么选机房?GPU集群对机柜、电力和网络的硬要求
服务器·网络·人工智能
玖玥拾3 小时前
Unity 3D 笔记(十五)Unity/C# Socket 网络笔记4
服务器·网络·unity·c#
JackieDYH3 小时前
WebSocket-不同平台封装-Hooks和使用案例
网络·websocket·网络协议
andxe14 小时前
安科士 AndXe 技术博客:400G QSFP112 SR4 光模块|AI 算力与超算短距互联最优方案
网络·人工智能·光模块·光通信
shiyi.十一15 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
DFT计算杂谈15 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
水境传感 李兆栋15 小时前
GNSS 位移监测站 :毫米级感知,筑牢安全监测防线
网络
中微极客17 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能