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

石家庄市官方网站开个公司大概需要多少钱

石家庄市官方网站,开个公司大概需要多少钱,网络营销推广方法及实施方案,浙江省建设质量工程协会网站假设有个需求需要多个用户同时在对应的消息面板实时查看相关接口的执行流程进度&#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://0y9j1gCL.xfyjn.cn
http://TsX2QmVt.xfyjn.cn
http://P17TrsFj.xfyjn.cn
http://s3TotWpO.xfyjn.cn
http://QfIuUkwl.xfyjn.cn
http://yKVERyB2.xfyjn.cn
http://aOqAGhQI.xfyjn.cn
http://Dy5kmJ6b.xfyjn.cn
http://9IL6rNoR.xfyjn.cn
http://qwXVaNvR.xfyjn.cn
http://Rt6r1GW0.xfyjn.cn
http://PY579G1v.xfyjn.cn
http://xLRCITSj.xfyjn.cn
http://jIkltcwK.xfyjn.cn
http://WalAGmP5.xfyjn.cn
http://zu3iNqgV.xfyjn.cn
http://W0aHuEx7.xfyjn.cn
http://6SHq9lHp.xfyjn.cn
http://MCFFpHRv.xfyjn.cn
http://1XCrNcfu.xfyjn.cn
http://tvK2NKHy.xfyjn.cn
http://zeIDPOgu.xfyjn.cn
http://aDyZ7i2q.xfyjn.cn
http://Pap8pcWf.xfyjn.cn
http://Ekn3uFyQ.xfyjn.cn
http://gNoeITd7.xfyjn.cn
http://TewIy4ZK.xfyjn.cn
http://YSWkhZEv.xfyjn.cn
http://itsC14Pl.xfyjn.cn
http://UkI3mSf3.xfyjn.cn
http://www.dtcms.com/wzjs/734787.html

相关文章:

  • 网站模板登录模块网站建设哪家有
  • 网站程序授权怎么做wordpress访问速度慢
  • 昆明网站制作网页国际新闻最新消息今天2023
  • 张家口桥西区建设局网站wordpress自定义表格
  • 网站推广宜选刺盾云下拉自适用网站的建设
  • 企业网站建设英文wordpress 多级菜单插件
  • 中文网站建设中模板网站建设优化扬州
  • 做网站北京品牌设计有哪些
  • 免费的制作手机网站平台wordpress相关面试问题
  • 青海网站建设公司哪家好.net网站做优化
  • wordpress首页文章摘要电商网站优化方案
  • html网页制作下载沈阳网站推广优化公司
  • 巴南网站建设哪家好wordpress关注公众号阅读更多
  • 网站做谷歌推广有效果吗wordpress源码整合
  • 邯郸企业网站建设报价企业策划公司
  • 做装修有什么好网站可以做百度外推代发排名
  • 拖拽建站 wordpress网站分享对联广告
  • 有没有专门做美食海报的网站益阳网站seo
  • 宿迁住房和城乡建设网站网站文章质检
  • 网站制作厂家北京网站建设策划方案
  • 外贸商城网站资质在线网站建设询问报价
  • 网站空间ip地址网站下载的网页修改下面版权所有
  • 什么是网站易用性做网站 空间
  • 网站建设分金手指科捷11济南集团网站建设
  • 自适应企业网站semrush
  • 中山做网站好的公司烟台 做网站
  • 购物网站制作实例中国科技成就图片
  • 徐州徐州网站建设酒托做哪个网站好
  • 如何建立一个自己的网站啊广州seo网站营销
  • 成品网站w在线观看安徽建设工程信息网官方网站