分享一下基础的 netty 使用,实现后台往前端推送信息

本文介绍了如何使用Netty构建一个WebSocket服务器,并结合Spring Boot实现后台向前端推送信息的功能。通过创建NettyServer、配置管道、设置自定义Handler以及实现推送消息接口,展示了从建立连接到消息传递的完整流程。
摘要由CSDN通过智能技术生成

学过 Netty 的都知道,Netty 对 NIO 进行了很好的封装,简单的 API,庞大的开源社区。深受广大程序员喜爱。基于此本文分享一下基础的 netty 使用。实战制作一个 Netty + websocket 的消息推送小栗子。

netty服务器

@Component public class NettyServer { static final Logger log = LoggerFactory.getLogger(NettyServer.class); /** * 端口号 */ @Value("${webSocket.netty.port:8888}") int port; EventLoopGroup bossGroup; EventLoopGroup workGroup; @Autowired ProjectInitializer nettyInitializer; @PostConstruct public void start() throws InterruptedException { new Thread(() -> { bossGroup = new NioEventLoopGroup(); workGroup = new NioEventLoopGroup(); ServerBootstrap bootstrap = new ServerBootstrap(); // bossGroup辅助客户端的tcp连接请求, workGroup负责与客户端之前的读写操作 bootstrap.group(bossGroup, workGroup); // 设置NIO类型的channel bootstrap.channel(NioServerSocketChannel.class); // 设置监听端口 bootstrap.localAddress(new InetSocketAddress(port)); // 设置管道 bootstrap.childHandler(nettyInitializer); // 配置完成,开始绑定server,通过调用sync同步方法阻塞直到绑定成功 ChannelFuture channelFuture = null; try { channelFuture = bootstrap.bind().sync(); log.info("Server started and listen on:{}", channelFuture.channel().localAddress()); // 对关闭通道进行监听 channelFuture.channel().closeFuture().sync(); } catch (InterruptedException e) { e.printStackTrace(); } }).start(); } /** * 释放资源 */ @PreDestroy public void destroy() throws InterruptedException { if (bossGroup != null) { bossGrou

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值