WebSocket 是什么?WebSocket 前后端交互

这篇具有很好参考价值的文章主要介绍了WebSocket 是什么?WebSocket 前后端交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WebSocket是什么?

WebSocket是一种在Web浏览器和服务器之间建立实时双向通信的技术。它不同于HTTP协议,因为HTTP是单向协议,只能客户端向服务器发送请求,服务器才能响应请求。而WebSocket可以实现双向通信,客户端和服务器可以随时互相发送消息,无需等待请求和响应。

WebSocket 协议是 HTML5 标准中的一部分,并在当前主流的浏览器和 Web 服务器中得到广泛支持。如今,大量的实时Web应用,如在线聊天、实时游戏、视频会议等都在使用 WebSocket 技术来实现低延迟、高效率和高可靠性的实时数据交换,而且相比其他技术(例如 Ajax 和长轮询),WebSocket 能够大幅降低网络带宽和服务器负载,提供更流畅的用户体验。

WebSocket协议的优势在于它可以使用标准的Web端口(HTTP的端口80和HTTPS的端口443),绕过大多数代理和防火墙限制。它也比传统的Ajax轮询和长轮询技术更快速、更具有响应性。

在WebSocket建立连接之前,它使用HTTP协议进行握手。客户端向服务器发送HTTP请求,并在请求头中包含一个特殊的标识符“Upgrade: websocket”,表示客户端希望升级协议到WebSocket。如果服务器支持WebSocket协议,它会响应一个状态码101 Switching Protocols,表示已成功升级协议,并开始使用WebSocket协议进行双向通信。

WebSocket使用一种基于帧的协议,在透明的TCP连接上提供了对双向通信的支持。这些帧通过二进制格式进行编码和解码,每个帧包含一些控制信息和实际的数据负载。

WebSocket优点

  1. 实时性:基于 WebSocket 协议的应用具有非常好的实时性,与HTTP协议相比能够更快地实现双向通信。

  2. 多协议:WebSocket 协议对底层传输协议并没有要求,它可以基于 TCP、UDP、SCTP 等协议,灵活性很高。

  3. 高效性:相较于轮询和 Comet 等技术,WebSocket协议可以降低数据交换的延迟,减少过多的头信息和降低网络带宽消耗率。

  4. 支持跨域:由于 WebSocket 是基于 TCP 协议的,较少受到同源策略限制,支持跨域使用。

  5. 减少服务端压力:相较于传统的 HTTP 请求,WebSocket 可以减少服务端的 CPU 和内存的开销,因为它的连接一旦建立就可以长期保持。

  6. 带有扩展特性:在协议的设计时,WebSocket 考虑的扩展特性比较多,例如可适应不同的压缩算法、消息编码方式等。

  7. 更好的二进制支持:在 WebSocket 中,字符串和二进制是等价的,非常方便处理二进制数据。

websocket的心跳机制和重连机制

        心跳机制:客户端每隔一段时间向服务端发送一个特有的心跳消息,每次服务端收到消息后只需将消息返回,此时,若二者还保持连接,则客户端就会收到消息,若没收到,则说明连接断开,此时,客户端就要主动重连,完成一个周期

        断线重连:若某时间段内客户端发送了消息,而服务端未返回,则认定为断线;这个时候会触发到websocket中的onclose事件,需要重新连接服务

WebSocket 入门(基本代码实现)

WebSocket通信一般分为前端与后端两个部分,具体如下:

前端部分:

        1、创建WebSocket对象:在前端代码中,可以使用JavaScript的WebSocket API来创建WebSocket对象。例如,可以使用以下代码来创建一个WebSocket对象并连接到服务器:

var socket = new WebSocket("ws://localhost:8080");

        2、发送数据:使用WebSocket对象的send()方法发送数据到服务器。例如,可以使用以下代码发送一条消息给服务器: 

socket.send("Hello, server!");

        3、接收数据:在WebSocket对象上添加一个监听器来接收服务器发送的消息。例如,可以使用以下代码来监听服务器发送的消息: 

socket.onmessage = function(event) {
    console.log("Received message: " + event.data);
};

后端部分:

  1. 创建WebSocket服务器:在后端代码中,可以使用各种编程语言和框架来创建WebSocket服务器。例如,使用Node.js和ws库可以很容易地创建WebSocket服务器。

  2. 处理连接请求:一旦建立了连接,服务器会收到一个连接请求。在服务器代码中,可以使用各种编程语言和框架来处理连接请求。例如,可以使用以下代码处理连接请求:

var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ port: 8080 });

wss.on('connection', function(ws) {
    console.log("New connection");
    
    ws.on('message', function(message) {
        console.log("Received message: " + message);
    });
});

这段代码创建了一个WebSocket服务器,并在客户端建立连接时打印出一条消息。它还添加了一个监听器来接收客户端发送的消息。当服务器收到消息时,它将打印出该消息。 

以上是WebSocket前后端交互的基本流程,可以根据实际需求进行调整和扩展。


总的来说,WebSocket是一种非常有用的技术,可以用于构建实时通信的应用程序,例如聊天应用、在线游戏以及股票市场等实时数据监控工具。它可以提供更快的数据传输速度和更好的用户体验,且易于使用和实现。

 文章来源地址https://www.toymoban.com/news/detail-481460.html

到了这里,关于WebSocket 是什么?WebSocket 前后端交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gpt微信小程序搭建的前后端流程 - 前端小程序部分-2.确定交互所需的后端API(二)

    Gpt微信小程序搭建的前后端流程 - 前端小程序部分-2.确定交互所需的后端API(二) 参考微信小程序- 小柠AI智能聊天 ,可自行先体验。 根据上一节的小程序静态页面设计,需要从后端获取数据的主要4个点: 登录流程; 获取今日已提问次数; 获取聊天记录; 发起聊天和响应。

    2024年02月13日
    浏览(32)
  • 若依ruoyi前端vue使用jsencrypt.js加密后端java进行RSA解密(前后端交互RSA加解密)

    目录 1、前后端RSA加解密实现思路 2、前端 3、后端 按照约定来说公钥一般用来加密,大家都可以获取得到,私钥用来解密,当然你也可以混着用,以下示例是前端通过加密,后端解密.  -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ81AMIIBCgKCAQEA1+05vAf7m5NcLNLkRtsm gp+QdzcW6MVdayGTGBJG0v

    2024年02月06日
    浏览(50)
  • 【毕设必备】手把手带你用Python搭建一个简单的后端服务- API的创建,前后端交互的数据传递,GET,POST,JSON,FLASK

    Python是一种 流行 的高级编程语言,具有易于学习和使用的特性,被广泛应用于各种领域。 简单易学 :Python的语法清晰简洁,易于理解和学习。与其他编程语言相比,Python的语法设计非常直观,使得编程新手也能快速上手。 强大的标准库和丰富的第三方库 :Python拥有一个庞

    2024年02月04日
    浏览(40)
  • Websocket前后端实现

    1.引入WebStocket的依赖 2.创建配置类 WebScoketConfig 新增客户的业务层 实现新增客户后,持续向前端推送客户信息。 3.创建WebScoketConfigServer 在websocket协议下,后端服务器等于是客户端,需要用@ServerEndpoint指定访问的路径,并使用@Component注入容器。 这里实现新增 客户,持续向前端

    2024年01月18日
    浏览(31)
  • 前后端 websocket 通信

    项目框架 后端: springboot 项目 前端: vue 项目   pom 文件添加依赖   websocket 实现类 ServerEndpoint 注解:定义 websocket 连接名,调用此接口时,开启 websocket 连接,即调用 onOpen 方法 onOpen:开启连接 onClose:关闭连接 onMessage:接收对方发送的消息 sendMessage:向所有连接此后台的另

    2023年04月09日
    浏览(20)
  • WebSocket实现前后端消息推送

    WebSocket的代码编写会根据业务逻辑而进行变化,需要去理解编写思路,这样才能在工作中使用得游刃有余。 1. 引入依赖 2.  编写WebSocketConfig配置类 3. 编写WebSocket服务类 下面的服务类中,可以编写多个sendMeg方法(写法比较多样化),作用是发送消息回前端,使用方式就是你在自

    2024年02月11日
    浏览(27)
  • 利用Websocket进行前后端通信

    一、websocket是什么 是一种基于TCP协议的网络通信技术,它提供了一个持久的、全双工的通信通道,可以在客户端和服务器之间进行实时的双向通信。 特点:WebSocket允许服务器主动向客户端推送数据,而不需要客户端发送请求。这种实时通信的特性使得WebSocket非常适合在Web应

    2024年02月12日
    浏览(25)
  • 【websocket】Node+Vue2+WebSocket实现前后端通讯

    WebSocket是一个长连接,客户端可以给服务端发送消息,服务端也可以给客户端发送消息,是 全双工通信。 平时的前后端分离项目,是前端请求结果获取后端服务器数据,从而渲染到页面,服务端无法主动向客户端发起消息,某些需求场景下,一旦客户端 需要知道服务端的频

    2024年02月02日
    浏览(31)
  • 前后端分离------后端创建笔记(02)

     本文章转载于【SpringBoot+Vue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/1ZZ8c-kRPUxY6FWzsoOOjtA 提取码:up4c 项目概述笔记:https://blog

    2024年02月12日
    浏览(28)
  • 区块链前后端交互过程

    此文章基于github中的开源项目“ 基于区块链的房地产交易系统模型”进行介绍。对于新手来说,就算可以运行此项目,也不知该如何修改代码来满足自己的需求,因此此篇文章对区块链项目的前后端进行介绍,感兴趣的小伙伴可去github下载源代码。 首先明确目录结构: app

    2023年04月27日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包