WebSocket前端完全指南

一、WebSocket前端代码

WebSocket是HTML5中新增的特性,使客户端和服务器之间可以进行实时双向通信。要在前端使用WebSocket,首先需要先创建WebSocket实例:


const ws = new WebSocket('ws://localhost:8080');

创建WebSocket实例的参数是服务器端口和地址,这里以localhost为例。

二、前端测试WebSocket接口

为了确保WebSocket连接正常,需要监听WebSocket的连接状态,同时也可以监听收到的消息。在WebSocket实例中添加以下代码:


ws.onerror = (event)=>{
    console.error("websocket error",event);
};

ws.onopen = ()=>{
    console.log("websocket connection success");
};

ws.onmessage = (event)=>{
    console.log("websocket receive message:",event);
};

其中,onerror处理错误事件,在onopen里面完成WebSocket连接之后的操作;onmessage用于处理接收到的消息。

三、WebSocket前端发送消息

既然是双向通信,前端也需要向服务器发送消息。可以使用WebSocket的send方法:


ws.send("Hello, WebSocket");

发送的消息可以是字符串或二进制数据。

四、WebSocket前端一发送就断开

有时候我们需要在前端向服务器发送一个消息,发送完就断开连接。这可以通过onopen事件添加一次性函数实现:


ws.onopen = ()=>{
    ws.send("Hello, WebSocket");
    ws.close();
};

五、WebSocket前端怎么用

对于一个WebSocket前端通信,我们必须要知道其生命周期。发送后端连通之前是CONNECTING,连接成功OPEN,消息上行(从前端发送到后端)为SENDING,消息下行(从后端发送到前端)为RECEIVING。封装了一下并且添加了异常try catch:

pre {
background:#eee;
padding:8px;
}

pre code {
color:#f66;
}


class WebSocketUtil{
    private ws!:WebSocket;

    connect(url:string):Promise{
        return new Promise((resolve,reject)=>{
            this.ws = new WebSocket(url);

            this.ws.onopen = (e)=>{
                resolve(e);
            };

            this.ws.onerror=(e)=>{
                reject(e);
            };
        })
    }

    close(){
        this.ws.close();
    }

    send(data:any):Promise{
        return new Promise((resolve,reject)=>{
            this.ws.onmessage=(event)=>{
                resolve(event);
            };

            try {
                this.ws.send(JSON.stringify(data));
            }catch(e){
                reject(e);
            }
        });
    }

    get state():number{
        return this.ws.readyState;
    }
}

使用方法:


const url = 'ws://localhost:8080/ws';
const websocket = new WebSocketUtil();
await websocket.connect(url);

if(websocket.state===WebSocket.OPEN){
    console.log("connected");
    await websocket.send({id:1,message:"hello, WebSocket"});
    websocket.close();
}

六、WebSocket前端封装

将WebSocket进行封装,可以通过继承并重写WebSocket原型方法,来拓展WebSocket的功能。比如:


class MyWebSocket extends WebSocket{
    constructor(url: string) {
        super(url);
    }

    mySend(msg: any){
        super.send(JSON.stringify(msg));
    }
}

封装之后使用方法和原来WebSocket一样,不过多了一个mySend方法。

七、WebSocket前端Vue使用方法

在Vue中使用WebSocket,可以将WebSocket封装在Vue原型中。在Vue的main.js文件中添加以下代码:


import Vue from 'vue';
import MyWebSocket from './MyWebSocket';

Vue.prototype.$ws = new MyWebSocket('ws://localhost:8080/ws');

这样就可以在Vue组件中使用this.$ws来操作WebSocket。

八、WebSocket前端交互

如果在前端中需要不同页面或组件之间进行WebSocket交互,可以将WebSocket放在一个单独的模块中,使用Vuex或事件总线来传递消息。

九、WebSocket前端关闭连接

当WebSocket不再需要使用时,需要调用close方法来关闭连接:


ws.close();

建议在组件钩子函数中使用created或destroyed来打开和关闭连接。其中created钩子函数用于创建连接,destroyed钩子函数用于在组件销毁前关闭连接。

总结:WebSocket前端的使用非常简单,前端只需创建WebSocket实例并监听连接状态,通过send发送消息即可。而为了方便,可以对WebSocket进行封装,使用Vue原型进行管理。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/311391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-05 13:23
下一篇 2025-01-05 13:23

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • 运维Python和GO应用实践指南

    本文将从多个角度详细阐述运维Python和GO的实际应用,包括监控、管理、自动化、部署、持续集成等方面。 一、监控 运维中的监控是保证系统稳定性的重要手段。Python和GO都有强…

    编程 2025-04-29
  • Python应用程序的全面指南

    Python是一种功能强大而简单易学的编程语言,适用于多种应用场景。本篇文章将从多个方面介绍Python如何应用于开发应用程序。 一、Web应用程序 目前,基于Python的Web…

    编程 2025-04-29
  • Python wordcloud入门指南

    如何在Python中使用wordcloud库生成文字云? 一、安装和导入wordcloud库 在使用wordcloud前,需要保证库已经安装并导入: !pip install wo…

    编程 2025-04-29
  • Python小波分解入门指南

    本文将介绍Python小波分解的概念、基本原理和实现方法,帮助初学者掌握相关技能。 一、小波变换概述 小波分解是一种广泛应用于数字信号处理和图像处理的方法,可以将信号分解成多个具有…

    编程 2025-04-29
  • Python字符转列表指南

    Python是一个极为流行的脚本语言,在数据处理、数据分析、人工智能等领域广泛应用。在很多场景下需要将字符串转换为列表,以便于操作和处理,本篇文章将从多个方面对Python字符转列…

    编程 2025-04-29
  • Python初学者指南:第一个Python程序安装步骤

    在本篇指南中,我们将通过以下方式来详细讲解第一个Python程序安装步骤: Python的安装和环境配置 在命令行中编写和运行第一个Python程序 使用IDE编写和运行第一个Py…

    编程 2025-04-29
  • Python起笔落笔全能开发指南

    Python起笔落笔是指在编写Python代码时的编写习惯。一个好的起笔落笔习惯可以提高代码的可读性、可维护性和可扩展性,本文将从多个方面进行详细阐述。 一、变量命名 变量命名是起…

    编程 2025-04-29
  • FusionMaps应用指南

    FusionMaps是一款基于JavaScript和Flash的交互式地图可视化工具。它提供了一种简单易用的方式,将复杂的数据可视化为地图。本文将从基础的配置开始讲解,到如何定制和…

    编程 2025-04-29
  • Python中文版下载官网的完整指南

    Python是一种广泛使用的编程语言,具有简洁、易读易写等特点。Python中文版下载官网是Python学习和使用过程中的重要资源,本文将从多个方面对Python中文版下载官网进行…

    编程 2025-04-29

发表回复

登录后才能评论