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

钢城网站建设凤凰网最新军事新闻

钢城网站建设,凤凰网最新军事新闻,海外服务器ip免费,东莞房价走势图1、webSocket实现代码 Component public class WebSocketStompConfig {//这个bean的注册,用于扫描带有ServerEndpoint的注解成为websocket// ,如果你使用外置的tomcat就不需要该配置文件Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpoi…

1、webSocket实现代码

@Component
public class WebSocketStompConfig {//这个bean的注册,用于扫描带有@ServerEndpoint的注解成为websocket// ,如果你使用外置的tomcat就不需要该配置文件@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
}

@Component
@ServerEndpoint(value = "/webSocket")
@Slf4j
public class WebSocket {private static int onlineCount = 0;private static ConcurrentHashMap<String, Set<Session>> webSocketMap  = new ConcurrentHashMap<>();private Session session;@OnOpenpublic void onOpen(Session session) {this.session = session;// 获取URL中的参数Map<String, List<String>> params = session.getRequestParameterMap();List<String> funcTypes = params.get("funcType");if (!funcTypes.isEmpty()) {// 取出funcType参数的值String funcType = funcTypes.get(0);if(webSocketMap.containsKey(funcType)){webSocketMap.get(funcType).add(session);}else{Set<Session> sessionSet = new HashSet<>();sessionSet.add(session);webSocketMap.put(funcType,sessionSet);}}System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());}@OnClosepublic void onClose(){webSocketMap=new ConcurrentHashMap<>();log.info("有一连接关闭!当前在线人数为" + getOnlineCount());}@OnMessagepublic void onMessage(String message, Session session) {System.out.println("来自客户端的消息:" + message);}@OnErrorpublic void onError(Session session, Throwable error) {System.out.println("发生错误");error.printStackTrace();}public static void sendMessage(Session session, String message) throws IOException {session.getBasicRemote().sendText(message);}public static synchronized int getOnlineCount() {return onlineCount;}public static synchronized void addOnlineCount() {WebSocket.onlineCount++;}public static synchronized void subOnlineCount() {WebSocket.onlineCount--;}public static void setOnlineCount(int onlineCount) {WebSocket.onlineCount = onlineCount;}public static ConcurrentHashMap<String, Set<Session>> getWebSocketMap() {return webSocketMap;}public static void setWebSocketMap(ConcurrentHashMap<String, Set<Session>> webSocketMap) {WebSocket.webSocketMap = webSocketMap;}public Session getSession() {return session;}public void setSession(Session session) {this.session = session;}/*** 发送自定义消息* */public static void sendInfo(String message,String funcType) throws Exception {if(webSocketMap.containsKey(funcType)){Set<Session> sessionSet = webSocketMap.get(funcType);if(sessionSet!=null){for (Session session : sessionSet) {if(session.getBasicRemote()!=null){session.getBasicRemote().sendText(message);}}}}else{log.error("订阅类型:"+funcType+",不存在!");throw new Exception("连接已关闭,请刷新页面后重试");}}}

二、java代码调用,往websocker赋数据

WebSocket.sendInfo(JSON.toJSONString("sdfasd232"),"3");

三、测试是否连接成功以及推送信息

四、前端代码处理

/*** 初始化websocket连接*/
function initWebSocket() {var websocket = null;if('WebSocket' in window) {websocket = new WebSocket("ws://127.0.0.1:8080/webSocket?funcType=3" );} else {alert("该浏览器不支持websocket!");}websocket.onopen = function(event) {console.log("建立连接");websocket.send('Hello WebSockets!');}websocket.onclose = function(event) {console.log('连接关闭')reconnect(); //尝试重连websocket}//建立通信后,监听到后端的数据传递websocket.onmessage = function(event) {let data = JSON.parse(event.data);//业务处理....if(data.step == 1){alert(data.msg);}}websocket.onerror = function() {// notify.warn("websocket通信发生错误!");// initWebSocket()}window.onbeforeunload = function() {websocket.close();}
// 重连
function reconnect() {console.log("正在重连");// 进行重连setTimeout(function () {initWebSocket();}, 1000);
}

http://www.yayakq.cn/news/362932/

相关文章:

  • 中地海外路桥建设有限公司网站用flask做的网站
  • 汽车之家这样的网站怎么做wordpress查询数据库乱码
  • 免费做网站刮刮卡如何做网站内容管理
  • 鄂州门户网站开题报告网站开发方法
  • 网站建设灬金手指科杰重庆装修贷款利率是多少
  • 网站建设 风险防控域名到期查询
  • 哪些人是建网站的太原自助模板建站
  • 公众号网站开发用什么模板wordpress目录content
  • 购物网站建设 属于信息系统管理与设计么?山西建筑工程集团有限公司
  • 网站建设费用不用摊销长沙建站公司效果
  • 仿牛商网营销型网站wordpress 嵌套回复
  • 网站空间备案流程wordpress添加网址为导航
  • 淄博市建设监理协会网站网络营销的特点决定了它不能满足
  • 建设银行网站的支付流程中介订制网站开发
  • 自适应网站 seo怎么做做网站的软件是什么
  • 赤峰建设局网站wordpress 制作企业站
  • 0基础学网站建设甲蛙网站建设
  • 衡阳微信网站开发口碑营销案例2021
  • 可信赖的常州网站建设怎么开微信公众号
  • 有没有做相册的网站淘宝网店运营策划书3000字
  • 做国外网站什么定位网页界面设计主要内容有哪些
  • wordpress全站固定链接一个企业seo网站的优化流程
  • 手机模板网站浙江省火电建设公司网站
  • 湛江市住房和城乡建设局网站怎么在腾讯地图上添加自己的店铺
  • 做最好的言情网站手机兼职工作有哪些
  • 网站如何带来流量医生咨询在线24小时免费
  • 韩国漫画漫免费观看免费公司网站的seo优化
  • 做网站想要个计算器功能湖南人文科技学院
  • 潍坊市坊子区建设局网站wordpress主题安装全解析
  • 临沂做进销存网站南宁网站建设 醉懂网络