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

做移动网站优化快速排名软件/免费软文推广平台都有哪些

做移动网站优化快速排名软件,免费软文推广平台都有哪些,深圳做网站哪家公司专业,政府网站建设简报假设有个需求需要多个用户同时在对应的消息面板实时查看相关接口的执行流程进度&#xff0c;此时可以可考虑使用websocket来实现结果进度推送 一、引入websocket依赖&#xff0c;并编写WebSocket配置类 <dependency><groupId>org.springframework.boot</group…

假设有个需求需要多个用户同时在对应的消息面板实时查看相关接口的执行流程进度,此时可以可考虑使用websocket来实现结果进度推送

一、引入websocket依赖,并编写WebSocket配置类

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;/*** WebSocket配置类*/
@Configuration
public class WebSocketConfig {/*** 注入ServerEndpointExporter,该Bean会自动注册使用@ServerEndpoint注解申明的websocket endpoint*/@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
}

二、编写WebSocket服务类,用户和客户端进行交互

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;/*** WebSocket服务*/
@ServerEndpoint("/ws/{uid}")
@Component
@Slf4j
public class WebSocketServer {/*** 当前在线连接数*/private static final AtomicInteger onlineNum = new AtomicInteger(0);/*** 存放每个客户端对应的Session*/private static final Map<String, Session> SESSION_POOLS = new ConcurrentHashMap<>();/*** 建立连接** @param session 当前会话* @param uid     用户id*/@OnOpenpublic void openConnection(Session session, @PathParam(value = "uid") String uid) {SESSION_POOLS.put(uid, session);onlineNum.incrementAndGet();log.info(uid + "建立连接! 当前连接数为: {}", onlineNum);}/*** 关闭连接** @param uid 用户id*/@OnClosepublic void closeConnection(@PathParam(value = "uid") String uid) {SESSION_POOLS.remove(uid);int cnt = onlineNum.decrementAndGet();log.info(uid + "断开连接, 当前连接数为:{}", cnt);}/*** 消息发送** @param session 当前会话* @param message 消息内容* @throws IOException IO异常*/public void sendMessage(Session session, String message) throws IOException {if (session != null && session.isOpen()) {synchronized (session) {session.getBasicRemote().sendText(message);}}}/*** 消息广播** @param message 消息内容*/public void broadCastMessage(String message) {SESSION_POOLS.forEach((k, v) -> {if (v.isOpen()) {try {sendMessage(v, message);} catch (IOException e) {throw new RuntimeException(e);}}});}/*** 发生错误** @param uid       用户id* @param throwable 错误信息*/@OnErrorpublic void errorConnection(@PathParam(value = "uid") String uid, Throwable throwable) {log.error("用户: " + uid + " 发生错误", throwable);}
}

三、编写controller模拟接口执行进度监控

import com.yx.analyze.demo.component.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.TimeUnit;/*** WebSocket接口控制器*/
@RestController
@RequestMapping("/ws")
@Slf4j
public class WebSocketController {@Autowiredprivate WebSocketServer webSocketServer;/*** 管理员广播消息,模拟某个接口执行的进度消息推送** @param id      用户id* @param message 消息内容*/@PostMapping(value = "/broadCast")public void broadCast(String id, String message) {//模拟管理员身份判断if ("admin".equals(id)) {try {webSocketServer.broadCastMessage(id + ":" + "监控接口开始执行...");webSocketServer.broadCastMessage(id + ":" + "监控接口开始校验...");TimeUnit.SECONDS.sleep(1);webSocketServer.broadCastMessage(id + ":" + "监控接口开始取数: 获取到1024条记录");TimeUnit.SECONDS.sleep(1);webSocketServer.broadCastMessage(id + ":" + "监控接口开始处理数据...");TimeUnit.SECONDS.sleep(1);webSocketServer.broadCastMessage(id + ":" + message);webSocketServer.broadCastMessage(id + ":" + "数据处理完毕...");} catch (Exception e) {log.error("监控接口消息发生异常: ", e);}}}
}

四、使用在线websocket连接工具进行测试

http://www.whsansanxincailiao.cn/news/32032614.html

相关文章:

  • 学校网站欣赏中文/技术培训平台
  • 连锁酒店网站建设公司/百度提交入口地址在哪
  • 平面艺术设计/seo整站优化推广
  • 公司网站放哪些内容/日本域名注册
  • 12306网站为什么做不好/武汉seo论坛
  • 教育网站建设/百度权重等级
  • 西部数码网站助手/云南网络推广服务
  • 两个网站互相做外链/苏州网站制作
  • 做自己任务的网站/网店无货源怎么做
  • 网站导航栏三根横线怎么做的/百度统计代码安装位置
  • xxx网站建设与优化推广/百度客户端在哪里打开
  • 初级买题做哪个网站好/百度员工收入工资表
  • flashxml网站模板/近期热点新闻事件
  • 营销型网站建设空间必须是/品牌线上推广方式
  • 微信网站建设热线/武汉网站seo推广
  • 怎么建立自己网站 asp/泉州百度首页优化
  • 公司网站建设要注意的问题/百度官方营销推广平台加载中
  • 成都工装装修设计公司/seo 网站排名
  • 大学生毕业论文管理系统入口/seo简单优化操作步骤
  • 河北响应式网站建设平台/免费下载百度app最新版本
  • 哈尔滨网站设计哪家公司好/网址提交百度收录
  • 如何进行网站建设和推广/seowhy培训
  • 正泰营销云/站长工具 seo综合查询
  • 广东湛江疫情名单/seo少女
  • 百度做网站电话多少钱/网络营销专业的就业方向
  • 门厂家网站建设/发外链的平台有哪些
  • 建设实验教学网站的作用/百度 seo优化作用
  • 品牌手机网站开发/外贸网站推广的方法
  • 互联网黄页是什么/徐州seo代理计费
  • 做一个官方网站多少钱一个/百度收录权重