From a97c0e84c8d1f50aa65935643a580527f30b7ece Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 12 三月 2024 08:39:38 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/src/main/java/com/example/erp/tools/netty/MyWebSocketHandler.java | 83 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 83 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..31546df
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/tools/netty/MyWebSocketHandler.java
@@ -0,0 +1,83 @@
+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("?"));
+ System.out.println(newUri);
+ 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