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

网站开发类的合同如何让自己的网站快速被百度收录

网站开发类的合同,如何让自己的网站快速被百度收录,免费推广软件下载,冷库建设网站使用WebFlux处理WebSocket连接的全生命周期案例 简介: 在Web应用程序开发中,WebSocket是一种用于实现双向通信的协议。Spring WebFlux提供了对WebSocket的支持,使您能够轻松地处理WebSocket连接和消息。本博客将介绍如何使用WebFlux处理WebS…

使用WebFlux处理WebSocket连接的全生命周期案例

简介:
在Web应用程序开发中,WebSocket是一种用于实现双向通信的协议。Spring WebFlux提供了对WebSocket的支持,使您能够轻松地处理WebSocket连接和消息。本博客将介绍如何使用WebFlux处理WebSocket连接和消息,以及其全部生命周期。

在Spring WebFlux中,您可以使用WebSocketHandler这是webflux集成websocket的全生命周期,包括从连接发送到释放的全周期,其他拓展功能可以自行添加:

package com.example.webfluxdemo.handler;import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.socket.WebSocketHandler;
import org.springframework.web.reactive.socket.WebSocketMessage;
import org.springframework.web.reactive.socket.WebSocketSession;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;/*** @Author: kingdol* @Description: a test to websockthandler*/
@Component
@Slf4j
public class MyWebSocketHandler implements WebSocketHandler {@NotNull@Overridepublic Mono<Void> handle(WebSocketSession session) {return session.receive().doOnSubscribe(s -> {log.info("发起连接:{}", s);}).doOnTerminate(() -> {log.info("doOnTerminate");}).doOnComplete(() -> {log.info("doOnComplete");}).doOnCancel(() -> {log.info("doOnCancel");}).doOnNext(message -> {if (message.getType().equals(WebSocketMessage.Type.BINARY)) {log.info("收到二进制消息");BinaryMessageHandler(session, message);} else if (message.getType().equals(WebSocketMessage.Type.TEXT)) {String content = message.getPayloadAsText();log.info("收到文本消息:{}", content);TestMessageHandler(session, message);} else if (message.getType().equals(WebSocketMessage.Type.PING)) {log.info("收到ping消息");PingTypeHandler(session, message);} else if (message.getType().equals(WebSocketMessage.Type.PONG)) {log.info("收到pong消息");PongTypeHandler(session, message);}}).doOnError(e -> {e.printStackTrace();log.error("doOnError");}).doOnRequest(r -> {log.info("doOnRequest");}).then();}private void BinaryMessageHandler(WebSocketSession session, WebSocketMessage message) {}private void PongTypeHandler(WebSocketSession session, WebSocketMessage message) {}private void PingTypeHandler(WebSocketSession session, WebSocketMessage message) {}private void TestMessageHandler(WebSocketSession session, WebSocketMessage message) {session.send(Flux.just(session.textMessage(message.getPayloadAsText()))).subscribe();}
}

在上面的示例中,MyWebSocketHandler实现了WebSocketHandler接口,并重写了handle方法来处理WebSocket连接和消息。在handle方法中,我们订阅了接收到的消息流,并对每个消息进行处理。在处理消息时,我们将接收到的消息转换为大写形式,并将响应发送回客户端。

要在应用程序中使用该WebSocket处理程序,您需要进行一些配置。以下是一个简单的配置示例:

package com.example.webfluxdemo.config;import com.example.webfluxdemo.handler.MyWebSocketHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.handler.SimpleUrlHandlerMapping;
import org.springframework.web.reactive.socket.server.support.WebSocketHandlerAdapter;import java.util.HashMap;
import java.util.Map;@Configuration
public class WebSocketConfig {@Beanpublic MyWebSocketHandler myWebSocketHandler() {return new MyWebSocketHandler();}@Beanpublic SimpleUrlHandlerMapping webSocketHandlerMapping() {Map<String, MyWebSocketHandler> map = new HashMap<>();map.put("/websocket", myWebSocketHandler());SimpleUrlHandlerMapping handlerMapping = new SimpleUrlHandlerMapping();handlerMapping.setUrlMap(map);handlerMapping.setOrder(1);return handlerMapping;}@Beanpublic WebSocketHandlerAdapter handlerAdapter() {return new WebSocketHandlerAdapter();}
}

在上面的配置示例中,我们创建了一个WebSocketConfig类,并定义了myWebSocketHandlerwebSocketHandlerMappinghandlerAdapter这三个Bean。myWebSocketHandler是我们之前编写的WebSocket处理程序,webSocketHandlerMapping用于将WebSocket处理程序映射到URL路径,handlerAdapter是用于适配WebSocket处理程序的适配器。

要启动应用程序并使用WebSocket连接,您需要在Spring Boot的启动类上添加@EnableWebFlux注解。
以上就是全生命周期的基本讲解,谢谢观看!

http://www.shuangfujiaoyu.com/news/53942.html

相关文章:

  • 怎么用新浪云做淘宝客网站网络营销推广方案范文
  • 电商网站建设的核心是什么电商seo搜索优化
  • 网站建设合同审查注意事项如何做电商
  • 金融类网站开发百度经验官网
  • SFDA的网站建设怎样注册自己网站的域名
  • 怎么做淘宝客网站赚钱正规百度推广
  • 河北网站开发报价起名最好的网站排名
  • 长沙经开区建管站seo优化是啥
  • 网站建设价格如何廊坊网络推广公司
  • 宝鸡seo培训搜索引擎优化的重要性
  • 微起点网站怎么设置的设计网站免费素材
  • 织梦 移动网站电商运营的基本流程
  • 免费可以看的软件大全下载北京做seo的公司
  • 北京互联网网站建设网络推广预算方案
  • 五里坨网站建设百度广告联盟赚广告费
  • 建设集团企业网站国内的搜索引擎有哪些
  • 网站备案专员广告公司怎么找客户资源
  • 网站开发个人博客宁波seo推广定制
  • 外贸常用网站有哪些品牌推广与传播方案
  • 网站手机模板和pc模板要分开做google浏览器官方
  • 哈尔滨网站制作公司电话亚马逊免费的关键词工具
  • 那个网站开发三味太原网络推广公司哪家好
  • seo公司费用网络优化培训要多少钱
  • 做网站攻略网站关键词快速优化
  • 捕鱼网站怎么做沈阳沈河seo网站排名优化
  • 简述常用的网站开发软件网络营销方式有哪几种
  • 做网站用什么语百度收录提交入口
  • php在电子商务网站建设中的应用研究 戴书浩一手渠道推广平台
  • 物流网站给做软件怎么制作网站
  • 潍坊网站建设服务宁夏百度公司