
netty学习专栏
文章平均质量分 87
netty学习、netty常用的代码,使用,以及一些常见问题的解决方案
黑皮爱学习
爱学习,爱分享!
展开
-
netty设置group的时候,比如b.group(bossGroup ,workGroup),为什么要添加个两个group
注:内容来自于Netty 权威指南第二版1、netty最基本的服务端、客户端 public void start() throws InterruptedException { /*线程组*/ //用于接收客户端的链接 EventLoopGroup bossGroup = new NioEventLoopGroup(); //处理IO相关的读写操作,或者执行系统Task、定时任务Task等 EventLoopGr原创 2020-10-06 12:11:56 · 2529 阅读 · 1 评论 -
ByteBuff常用方法,使用
ByteBuff常用方法,使用原创 2020-07-04 15:00:29 · 13909 阅读 · 0 评论 -
1、netty最基本的服务端、客户端
注:源代码来自享学课堂,学习之后所做笔记,方便回顾,也给大家一个参考1、引入nettyjar包<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.28.Final</version></dependency>2、Client主函数import原创 2020-05-12 23:22:44 · 402 阅读 · 0 评论 -
9、springboot和websocket的集成,实现简单的单发和群发消息
新建简单的springboot项目,引入socket相关的jar包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency> <groupId>org.springframework.b原创 2020-05-28 16:16:22 · 571 阅读 · 0 评论 -
10、netty结合websocket完成消息的单发和群发
注:源代码来自享学课堂,略有修改,学习之后所做笔记,方便回顾,也给大家一个参考服务端主函数和普通的服务代码相同,这里加上了ssl的支持,如果不需要ssl支持,默认是falsepackage com.gg.socket.netty.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.Channel;import io.netty.channel.EventLoopGroup;import原创 2020-05-27 18:07:57 · 2013 阅读 · 0 评论 -
8、基于长轮询的SSE(server send event)
注:源代码来自享学课堂,略有修改,学习之后所做笔记,方便回顾,也给大家一个参考SSE和DeferredResult不同之处在于:DeferredResult需要页面重复发送多个请求,来刷新页面,原理是使用Servlet3的异步任务,有个缺点,下次发送请求的时候,还是会有个时间空格,消息会有一点延迟;SSE是页面只发送一次请求到服务器,然后服务器自动多次返回结果,服务器发送的数据是一个流数据,不断发送,不让客户端关闭连接。SSE更适合金融实时数据。页面处理function s..原创 2020-05-22 14:45:36 · 673 阅读 · 0 评论 -
7、Comet的服务器推送技术,基于Ajax,DeferredResult实现长轮询
注:源代码来自享学课堂,略有修改,学习之后所做笔记,方便回顾,也给大家一个参考DeferredResult实现长轮询页面每次调用请求之后,在方法结束的时候,再次自我调用<%@ page language = "java" contentType= "text/html; charset=UTF-8" pageEncoding= "UTF-8" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "原创 2020-05-22 14:49:21 · 238 阅读 · 0 评论 -
5、netty的自带的序列化Protocol Buffers和MessagePack的使用示例
注:源代码来自享学课堂,略有修改,学习之后所做笔记,方便回顾,也给大家一个参考why:Java序列化仅仅是Java编解码技术的一种1.网络传输2.对象持久化java自带序列化的缺点1、无法跨语言2、序列化之后的流太大3、序列化新能的,耗时长netty常用的序列化Netty内置了对JBoss Marshalling和Protocol Buffers的支持Protocol Buffers一下只是简化的代码,pipleLine添加ProtobufEncoder、Pr原创 2020-05-20 00:33:32 · 354 阅读 · 0 评论 -
4、netty编写http服务器、增加压缩支持、netty编写client、netty添加SL/TLS保护https支持
注:源代码来自享学课堂,学习之后所做笔记,方便回顾,也给大家一个参考目录netty编写http服务器主函数ServerHandlerInit服务端自定义BusiHandler至此,最简单的netty编写的服务器就成了,启动主函数,通过浏览器访问浏览器访问,返回的结果和正常调用接口是一样的,/test是被拦截的请求默认是正常的请求服务器增加压缩支持修改ServerHandlerInit,添加上压缩的handler访问接口,header出现了transfer-en原创 2020-05-19 23:59:05 · 788 阅读 · 0 评论 -
3、解决粘包和半包问题三种方式:自定义字符串分隔符、消息定长,系统回车符
注:源代码来自享学课堂,学习之后所做笔记,方便回顾,也给大家一个参考1、Client主函数以下三种任意使用一种1、通过添加DelimiterBasedFrameDecoder使用自定义字符串分隔符2、消息定长,把消息的长度作为固定长度3、加分割符:系统回车符import io.netty.bootstrap.Bootstrap;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelFuture;import i原创 2020-05-13 23:58:47 · 786 阅读 · 1 评论 -
2、netty粘包和半包实例代码,此代码会出现粘包示例,解决方法在下一篇
注:源代码来自享学课堂,学习之后所做笔记,方便回顾,也给大家一个参考1、Client主函数import io.netty.bootstrap.Bootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioSocke原创 2020-05-13 22:05:25 · 268 阅读 · 0 评论