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

淄博网站建设设计专业h5网站制作

淄博网站建设设计,专业h5网站制作,软件开发文档下载,更换网站服务器SpringBoot3.x整合WebSocket 本文主要介绍最新springboot3.x下如何整合WebSocket. WebSocket简述 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它允许在浏览器和服务器之间进行实时的、双向的通信。相对于传统的基于请求和响应的 HTTP 协议&#xff…

SpringBoot3.x整合WebSocket

本文主要介绍最新springboot3.x下如何整合WebSocket.

WebSocket简述

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它允许在浏览器和服务器之间进行实时的、双向的通信。相对于传统的基于请求和响应的 HTTP 协议,WebSocket 提供了一种更有效、更实时的通信方式,适用于需要实时更新、实时通知和实时交互的应用。

WebSocket 的特点

WebSocket 的一些关键特点包括:

全双工通信: WebSocket 允许服务器和客户端在同一连接上同时进行双向通信。这意味着服务器可以随时向客户端推送数据,而不必等待客户端发送请求。

持久连接: WebSocket 连接一旦建立,会一直保持打开状态,不会像传统的 HTTP 连接那样在每次请求和响应之后关闭。这减少了每次连接建立和关闭的开销,使通信更加高效。

低延迟: 由于连接保持打开状态,WebSocket 通信具有较低的延迟,适用于实时性要求较高的应用,如实时聊天、实时数据更新等。

少量的数据交换: HTTP 请求和响应相比,WebSocket 数据交换的开销较小。WebSocket 的帧头相对较小,因此有效载荷的比例更高。

兼容性: 现代浏览器和大多数服务器支持 WebSocket。此外,WebSocket 协议还定义了一个子协议 STOMPStreaming Text Oriented Messaging Protocol),用于更高级的消息传递和订阅功能。

安全性: 与其他网络通信协议一样,WebSocket 通信也需要一些安全性的考虑。可以使用加密协议(如 TLS)来保护数据在网络传输中的安全性。

实战范例

添加依赖

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-websocket</artifactId>

            <version>3.4.2</version>

        </dependency>

配置WebSocket

创建一个配置类来注册WebSocket端点和处理程序。

/**

 * @ 基本功能:

 * @ program:demo-websocket

 * @ author:Jet

 * @ create:2025-02-12 14:14:28

 **/

import cn.jet.demowebsocket.wshandler.EcWebSocketHandler;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.socket.config.annotation.EnableWebSocket;

import org.springframework.web.socket.config.annotation.WebSocketConfigurer;

import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@Configuration

@EnableWebSocket

public class WebSocketConfig implements WebSocketConfigurer {

    @Override

    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {

        registry.addHandler(new EcWebSocketHandler(), "/ec").setAllowedOrigins("*");// 注意:在生产环境中,应限制允许的来源

    }

}

实现WebSocket处理器

/**

 * @ 基本功能:

 * @ program:demo-websocket

 * @ author:Jet

 * @ create:2025-02-12 14:16:59

 **/

import cn.jet.demowebsocket.common.EnumHandler;

import cn.jet.demowebsocket.handler.Handler;

import com.fasterxml.jackson.databind.ObjectMapper;

import jakarta.annotation.PostConstruct;

import org.springframework.stereotype.Component;

import org.springframework.web.socket.CloseStatus;

import org.springframework.web.socket.TextMessage;

import org.springframework.web.socket.WebSocketSession;

import org.springframework.web.socket.handler.TextWebSocketHandler;

import java.util.HashSet;

import java.util.Map;

import java.util.Set;

@Component

public class EcWebSocketHandler extends TextWebSocketHandler {

    private static Set<WebSocketSession> sessions = new HashSet<>();

    private ObjectMapper objectMapper = new ObjectMapper();

    @Override

    public void afterConnectionEstablished(WebSocketSession session) throws Exception {

        sessions.add(session);

        System.out.println("New session added, session id: " + session.getId());

    }

    @Override

    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {

        Map<String, Object> param = objectMapper.readValue(message.getPayload(), Map.class);

        System.out.println("from session: " + session.getId());       

        String cmd = param.get("cmd").toString();

        System.out.println("cmd: " + cmd);

        session.sendMessage(new TextMessage("Echo: " + message.getPayload()));

    }

    @Override

    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {

        sessions.remove(session);

        System.out.println("Session closed, session id: " + session.getId());

    }

    @PostConstruct

    public void init() {

        System.out.println("WebSocket handler initialized");

    }

}


文章转载自:

http://vC1ELXnb.yrrnx.cn
http://PFp29fX3.yrrnx.cn
http://RIHgoDoY.yrrnx.cn
http://ISZqPenP.yrrnx.cn
http://mBzpa2tM.yrrnx.cn
http://Hd2QGM5w.yrrnx.cn
http://14GiL47P.yrrnx.cn
http://oHXDukxa.yrrnx.cn
http://YsZwjvwM.yrrnx.cn
http://T0C1wygQ.yrrnx.cn
http://99jx7wb3.yrrnx.cn
http://wAOKAWdk.yrrnx.cn
http://XJ35WdLg.yrrnx.cn
http://LRWtKDhn.yrrnx.cn
http://sZutBixS.yrrnx.cn
http://wdrBQs6T.yrrnx.cn
http://jy32mmKn.yrrnx.cn
http://rwCo0ibA.yrrnx.cn
http://T4RC7aLJ.yrrnx.cn
http://dupFUuAA.yrrnx.cn
http://nbHYYvrR.yrrnx.cn
http://ZKRYuUHj.yrrnx.cn
http://iciWXmhr.yrrnx.cn
http://rbwVIGTS.yrrnx.cn
http://PcOirzjx.yrrnx.cn
http://RjWjNRuc.yrrnx.cn
http://H3N69aZ2.yrrnx.cn
http://Yy0gRrX7.yrrnx.cn
http://77O6cNr1.yrrnx.cn
http://xWaTiGHa.yrrnx.cn
http://www.dtcms.com/wzjs/611119.html

相关文章:

  • app网站开发长沙游戏推广话术
  • 网站域名空间怎么提交搬家公司电话号码
  • 哪些行业需要做网站网络平台推广宣传方案
  • ps做游戏网站徐州建设网站公司
  • 电子机箱网站建设报告有网站源码怎么搭建网站
  • 上海阀门网站建设网页设计有什么证书
  • 上海网站建设 缔客网站建设设计时代创信好
  • 网站营销平台谷歌seo网站推广怎么做优化
  • wordpress不显示网站标题企业邮箱怎么看
  • 企业做网站价钱万网网站多少
  • 济宁网站建设价格吉林市做网站的公司
  • 响应式网站 分辨率北京网站建设是什么意思
  • 企业网站设计服务公司wordpress购买后可见
  • 深圳网站建设专业乐云seo图片在线制作网站
  • 翡翠原石网站首页怎么做红包网站开发
  • 360网站建设官网工程信息造价
  • 怎样建设自己网站网页设计培训 周末双休
  • 网站反向链接wordpress字体图标
  • 亚马逊电商平台郑州seo优化公司
  • 深圳做微信网站多少钱edge打开是2345网址导航
  • 做网站许昌做猎头顾问 经常看哪些网站
  • 网站编辑难做吗一个电子商务网站的用户购买行为监测报告文档格式怎么做?
  • 网站建设需求列表淮南查查网
  • 做外贸必备网站酒店管理专业建设规划
  • 济南做外贸的网站公司如何去掉wordpress作者链接
  • 做京东一样的网站网站建设维护什么意思
  • 网站有些什么内容wordpress自定义进入后台地址
  • 网站建设 服务流程女孩更严重的新冠异常
  • 专业的企业智能建站比较好深圳比较有名的外贸公司
  • 风机 东莞网站建设视觉设计工作室