v1.0.0版本发布
一 新增功能
1 服务端
(1)基于基础创建类的Netty服务端搭建方法与支持快速构建的处理器;
package com.catalpawoo.easynetty.start.handler;
import com.catalpawoo.easynetty.common.utils.ObjectUtil;
import io.netty.channel.*;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* Easy-Netty服务端自定义请求处理类
*
* @author wuzijing
* @apiNote Easy-Netty服务端自定义请求处理类
* @since 2024-06-22
*/
@Slf4j
@Component
@ChannelHandler.Sharable
public class EasyNettyServerHandler extends SimpleChannelInboundHandler<TextWebSocketFrame> {
private final Map<ChannelId, Channel> channelMap = new ConcurrentHashMap<>();
@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame) {
if (ObjectUtil.isNull(textWebSocketFrame)) {
return;
}
log.info(textWebSocketFrame.text());
}
@Override
public void handlerAdded(ChannelHandlerContext channelHandlerContext) {
this.channelMap.put(channelHandlerContext.channel().id(), channelHandlerContext.channel());
}
@Override
public void userEventTriggered(ChannelHandlerContext channelHandlerContext, Object event) {
if (event instanceof WebSocketServerProtocolHandler.HandshakeComplete complete) {
log.info("easy-netty hand shake.");
}
}
@Override
public void handlerRemoved(ChannelHandlerContext channelHandlerContext) {
this.channelMap.remove(channelHandlerContext.channel().id());
}
}
@Slf4j
@SpringBootTest(classes = EasyNettyServerApplication.class, webEnvironment = RANDOM_PORT)
public class EasyNettyServerTest {
@Autowired
private EasyNettyHandler easyNettyHandler;
@Autowired
private EasyNettyServerHandler easyNettyServerHandler;
@Test
public void testEasyNettyServer() {
easyNettyHandler.startNettyServer(easyNettyServerHandler, "/socket", 9000, 1).asShortText();
}
}
(2)基于构造器的Netty服务端搭建方法;
(存在BUG,无法使用,将在下一版本中修复)
(3)其他通用方法。
二 引入
<dependency>
<groupId>io.github.catalpawoo524</groupId>
<artifactId>easy-netty-spring-boot3-starter</artifactId>
<version>1.0.0</version>
</dependency>
三 即将实现
1 基于注解的服务端搭建方法;
2 基于Yaml配置、代码配置以及注解的客户端搭建方法;
3 扩展JDK8与SpringBoot2.0的支持。