![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Netty
小糖豆巴拉巴拉
心若向阳,何惧忧伤
展开
-
Netty应用之粘包拆包及编码解码
前言为什么要把编码解码和粘包拆包放在一起呢?原因是粘包拆包的解决方案就是利用编码解码。当 Netty 发送或者接受一个消息的时候,就将会发生一次数据转换。入站消息会被解码:从字节转换为另一种格式(比如 java 对象);如果是出站消息,它会被编码成字节。编码解码这里简单说一些编码器解码器的接口MessageToMessageEncoder对应MessageToMessageDecoderMessageToByteEncoder对应ByteToMessageDecoder上面一个是编码,一个是原创 2020-10-22 19:56:49 · 463 阅读 · 0 评论 -
Netty应用之实现websocket长连接
前言有时候前后端交互的时候,会用到websocket。这时前端是用js代码实现的,后端需要写一个websocket服务供前端调用,netty也可以实现websocket服务端,下面是实现案例代码服务器端package com.huali.netty.websocket;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelIn原创 2020-10-21 16:51:31 · 795 阅读 · 0 评论 -
Netty核心模块API说明及其使用
前言建议先去看看https://github.com/Coderxiangyang/NettyExercise/tree/master/NettySimple这个案例,在阅读下面的文章,理解效果会更好。此文主要记录Netty常用的模块以及API。梳理一下代码顺序,先使用引导器,加载各种配置,然后加载各种handler(业务处理类),然后客户端去连接服务端的IP地址以及端口,服务端监听端口即可。然后获取通道,将数据写入通道即完事。Bootstrap ServerBootstrap解释Bootstra原创 2020-10-21 15:28:36 · 401 阅读 · 0 评论 -
Netty架构概述及其原理说明
为什么要用Netty架构前面一篇文章写了java原生支持的NIO模型也是可以实现网络数据传输的,为什么还有Netty出现呢?NIO的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer等要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等原创 2020-10-20 16:24:20 · 642 阅读 · 0 评论 -
Netty架构基础之BIO NIO AIO网络编程模型
前言公司业务需求,需要用到tcp数据传输,基于java自带的socket太low,而且编程复杂,市面上比较流行的netty比较适合。学习netty之前,先简单总结一下各种数据传输类型。java支持的类型Java 共支持 3 种网络编程模型/IO 模式:BIO、NIO、AIOJava BIO:理解: 同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销适用场景:BIO 方式适用于连接数目原创 2020-10-19 20:28:36 · 617 阅读 · 3 评论