钟日健
2022-05-19 de31e91aa2f38a717f2d4640a3197580ec1807a7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//package org.springblade.modules.nettyServer;
//
//import com.alibaba.fastjson.JSONObject;
//import io.netty.buffer.ByteBuf;
//import io.netty.buffer.Unpooled;
//import io.netty.channel.Channel;
//import io.netty.channel.ChannelHandlerContext;
//import io.netty.channel.ChannelInboundHandlerAdapter;
//import io.netty.util.CharsetUtil;
//import org.springblade.modules.webscoket.service.IPushMsgService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.PostConstruct;
//import java.text.SimpleDateFormat;
//import java.util.*;
//import java.util.concurrent.ConcurrentHashMap;
//
//@Component
//public class ServerHandler extends ChannelInboundHandlerAdapter {
//
//    private String reg_LA = "LA[d]{8}[d|A-F]{12}[d|A-F]{8}[d|A-Z]{2}[d|A-F]{4}[x2A][d|A-F]{6}[#@]";
//    private String reg_LB = "LB[\\d|A-F]{12}[\\x2A].*[#@]";
//    private String reg_LB2 = "LB[\\d|A-F]{6}[\\x2A].*[#@]";
//    private String reg_LD = "LD[d]{8}[d|A-F]{12}:[A-Z]{4}[\\x2A].*[#@]";
//
//
//    private ConcurrentHashMap<String, Channel> sessionChannelMap = new ConcurrentHashMap<String, Channel>();
//
//    private static ServerHandler serverHandler;
//
//    @PostConstruct
//    public void init() {
//        serverHandler = this;
//    }
//
//    /**
//     * 客户端与服务端创建连接的时候调用
//     */
//    @Override
//    public void channelActive(ChannelHandlerContext ctx) throws Exception {
//        System.out.println("CTX:" + ctx.channel());
//        System.out.println("客户端与服务端连接开始...");
//    }
//
//    /**
//     * 客户端与服务端断开连接时调用
//     */
//    @Override
//    public void channelInactive(ChannelHandlerContext ctx) throws Exception {
//        System.out.println("客户端与服务端连接关闭...");
//        NettyConfig.group.remove(ctx.channel());
//    }
//
//    /**
//     * 服务端接收客户端发送过来的数据结束之后调用
//     */
//    @Override
//    public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
//        ctx.flush();
//        System.out.println("信息接收完毕...");
//    }
//
//    /**
//     * 工程出现异常的时候调用
//     */
//    @Override
//    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
//        cause.printStackTrace();
//        ctx.close();
//    }
//
//    /**
//     * 服务端处理客户端websocket请求的核心方法,这里接收了客户端发来的信息
//     */
//    @Override
//    public void channelRead(ChannelHandlerContext channelHandlerContext, Object info) throws Exception {
//        System.out.println("接收到了:" + info);
//        ByteBuf buf = (ByteBuf) info;
//        byte[] req = new byte[buf.readableBytes()];
//        buf.readBytes(req);
//        String body = new String(req, "UTF-8");
//        String content = body;
//        System.out.println("接收客户端数据:" + body);
//
//    }
//
//
//}