From ef5a518c3e2c1fe41aa60f56ca31ddafa0cb1561 Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期四, 23 五月 2024 08:32:36 +0800 Subject: [PATCH] 添加产品汇总报表 --- north-glass-erp/src/main/java/com/example/erp/tools/netty/MyWebSocketHandler.java | 82 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 82 insertions(+), 0 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/tools/netty/MyWebSocketHandler.java b/north-glass-erp/src/main/java/com/example/erp/tools/netty/MyWebSocketHandler.java new file mode 100644 index 0000000..e6907f2 --- /dev/null +++ b/north-glass-erp/src/main/java/com/example/erp/tools/netty/MyWebSocketHandler.java @@ -0,0 +1,82 @@ +package com.example.erp.tools.netty; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.handler.codec.http.FullHttpRequest; +import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; + +import java.util.HashMap; +import java.util.Map; + +public class MyWebSocketHandler extends SimpleChannelInboundHandler<TextWebSocketFrame> { + + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + System.out.println("涓庡鎴风寤虹珛杩炴帴锛岄�氶亾寮�鍚紒"); + + //娣诲姞鍒癱hannelGroup閫氶亾缁� + MyChannelHandlerPool.channelGroup.add(ctx.channel()); + } + + @Override + public void channelInactive(ChannelHandlerContext ctx) throws Exception { + System.out.println("涓庡鎴风鏂紑杩炴帴锛岄�氶亾鍏抽棴锛�"); + //娣诲姞鍒癱hannelGroup 閫氶亾缁� + MyChannelHandlerPool.channelGroup.remove(ctx.channel()); + } + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + //棣栨杩炴帴鏄疐ullHttpRequest锛屽鐞嗗弬鏁� by zhengkai.blog.csdn.net + if (null != msg && msg instanceof FullHttpRequest) { + FullHttpRequest request = (FullHttpRequest) msg; + String uri = request.uri(); + + Map paramMap=getUrlParams(uri); + //System.out.println("鎺ユ敹鍒扮殑鍙傛暟鏄細"+paramMap); + //濡傛灉url鍖呭惈鍙傛暟锛岄渶瑕佸鐞� + if(uri.contains("?")){ + String newUri=uri.substring(0,uri.indexOf("?")); + request.setUri(newUri); + } + + }else if(msg instanceof TextWebSocketFrame){ + //姝e父鐨凾EXT娑堟伅绫诲瀷 + TextWebSocketFrame frame=(TextWebSocketFrame)msg; + System.out.println("瀹㈡埛绔敹鍒版湇鍔″櫒鏁版嵁锛�" +frame.text()); + sendAllMessage(frame.text()); + } + super.channelRead(ctx, msg); + } + + @Override + protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame) throws Exception { + + } + + public void sendAllMessage(String message){ + //鏀跺埌淇℃伅鍚庯紝缇ゅ彂缁欐墍鏈塩hannel + MyChannelHandlerPool.channelGroup.writeAndFlush( new TextWebSocketFrame(message)); + } + + private static Map getUrlParams(String url){ + Map<String,String> map = new HashMap<>(); + url = url.replace("?",";"); + if (!url.contains(";")){ + return map; + } + if (url.split(";").length > 0){ + String[] arr = url.split(";")[1].split("&"); + for (String s : arr){ + String key = s.split("=")[0]; + String value = s.split("=")[1]; + map.put(key,value); + } + return map; + + }else{ + return map; + } + } +} + -- Gitblit v1.8.0