Netty
文章平均质量分 96
Liu_Shihao
Null
展开
-
Netty的WebSocket协议实现服务端与客户端即时通信及问题总结
目录一、介绍二、问题2.1 启动服务端方式2.2 客户端连接对象存储问题2.3 服务端主动与客户端通信2.4 @Sharable 注解三、实现四、附录4.1 pom文件4.2 SpringUtils一、介绍技术栈:Java:1.8SpringBoot:2.2.2.RELEASENetty:4.1.32.Final基础了解可参考文章:https://blog.csdn.net/DreamsArchitects/article/details/120177336当前时间:2021年12月31日1原创 2021-12-31 17:10:59 · 1539 阅读 · 0 评论 -
Netty权威指南——WebSocket协议开发
一、简介由于HTTP协议的开销,导致他们不适于用于低延迟应用,为了解决这些问题,WebSocket将网络套接字引入到了客户端和服务端,浏览器和服务器之间可以通过套接字建立持久的连接,双方随时可以互发数据给对方,而不是之前由客户端控制的一请求一应答模式。1.1 HTTP协议的弊端HTTP协议为半双工协议,半双工协议指数据可以在客户端和服务端两个方向上传输,但是不能同时传输,它意味着在同一时刻只有一个方向上的数据传送。HTTP消息冗长而繁琐,HTTP消息包含消息头、消息体、换行符等,通常情况采用文本方原创 2021-09-10 13:43:04 · 526 阅读 · 0 评论 -
Netty权威指南——Netty HTTP+XML协议栈开发
目录一、介绍二、开发场景介绍一、介绍由于HTTP协议的通用性,很多异构系统间的通信交互采用HTTP协议,通过HTTP协议承载业务数据进行消息交互,例如非常流行的HTTP+XML或者RESTful+JSON。在Java领域,最常用的HTTP协议栈就是基于Servlet规范的Tomcat等Web容器,由于谷歌等业界大佬的强力推荐,Jetty等轻量级的Web容器也得到了广泛的应用,但是,很多基于HTTP的应用都是后台应用,HTTP仅仅是承载数据交换的通道,是一个载体而不是一个容器,在这种场景下,一般不需要类原创 2021-06-12 13:57:06 · 2056 阅读 · 8 评论 -
Netty权威指南——HTTP协议开发应用(HTTP文件服务器)
目录一、简介二、HTTP协议介绍2.1 HTTP协议的URL2.2 HTTP请求消息(HttpRequest)2.3 HTTP的响应消息(HttpResponse)一、简介HTTP(超文本传输协议)协议是建立在TCP传输协议之上的应用层协议,它的发展是万维网协会和Internet工作小组IETF合作的结果。HTTP是一个属于应用层的面向对象的协议。由于其简捷、快速的方式,适用于分布式超媒体信息系统。由于HTTP协议是目前Web开发的主流协议,基于HTTP的应用非常广泛,因此,掌握HTTP的开发非常重要原创 2021-06-04 09:22:38 · 675 阅读 · 5 评论 -
Netty权威指南(六)编解码技术、MessagePack编解码框架以及LengthFieldBasedFreamDecoder解码器
目录一、介绍二、Java序列化的缺点2.1 无法跨语言2.2 序列化后的码流太大一、介绍基于Java提供的对象输入/输出流ObjectInputStream 和ObjectOutputStream ,可以直接把Java对象作为可存储的字节数组,写入文件,也可以传输到网络上。对程序员来说,基于JDK默认的序列化机制,可以避免操作底层的字节数组,从而提高开发效率。Java序列化的目的主要有两个:网络传输对象持久化Netty的NIO网络开发,主要关注的是网络传输方面。当进行跨进程服务调用时,需要原创 2021-04-12 17:49:16 · 358 阅读 · 0 评论 -
Netty权威指南(五)分隔符和定长解码器
目录上一章一、介绍二、基于DelimiterBasedFreamDecoder的应用开发(分隔符解码器)2.1 EchoServer2.2 EchoServerHandler2.3 EchoClient2.4 EchoClientHandler2.5 运行三、基于FixedLengthFreamDecoder的应用开发(定长解码器)3.1 EchoServer3.2 EchoServerHandler3.3 使用Telnet命令行测试EchoServer服务端3.3.1 Mac电脑安装brew工具3.3.2原创 2021-04-07 09:18:51 · 1075 阅读 · 1 评论 -
Netty权威指南(四)TCP粘包/拆包问题
TCP粘包/拆包问题解决之道一、介绍1.1 TCP粘包/拆包问题说明1.2 TCP粘包/拆包发生的原因1.3 粘包问题的解决策略二、未考虑TCP粘包导致的功能异常案例2.1 TimeServerHandler的改造2.2 TimeClientHandler的改造2.3 运行三、利用LineBasedFrameDecoder解决TCP粘包问题3.1 支持TCP粘包的TimeServer3.2 支持TCP粘包的TimeClient3.3 运行3.4 LineBasedFrameDecoder和StringDec原创 2021-04-05 15:29:37 · 248 阅读 · 0 评论 -
Netty权威指南(三)Netty入门应用
Netty入门应用回顾NIO开发步骤一、依赖二、Netty TimeServer三、Netty TimeServerHandler四、Netty TimeClient五、Netty TimeClientHandler回顾NIO开发步骤创建ServerSocketChannel,配置为非阻塞模式。绑定监听,配置TCP参数,例如backlog大小。创建一个独立的I/O线程,用于轮询多路复用器Selector。创建Selector,将之前创建的ServerSocketChannel注册到Selecto原创 2021-04-05 12:39:17 · 433 阅读 · 2 评论 -
Netty权威指南(二)NIO模型
NIO有两种叫法:有人称之为New I/O;更多的人喜欢称之为Non-block I/O:非阻塞I/O,后者更能体现NIO的特点。与Socket和ServerSocket类相对应,NIO也提供了SocketChannel和ServerSocketChannel两种不同的套接字通道实现。这两种新增的通道都支持阻塞与非阻塞两种模式。一般来说:低负载、低并发的应用程序可以选择同步阻塞I/O以降低编程复杂度;对于高负载、高并发的应用程序,需要使用NIO的非阻塞模式进行开发。原创 2021-03-01 17:16:29 · 1768 阅读 · 5 评论 -
Netty权威指南(一)传统BIO模型、伪异步I/O模型
文章目录传统的BIO编程TimeServerTimeServerHandlerTimeClient演示BIO模型的弊端传统的BIO编程网络编程的基本模型是Clinet/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。在基于传统同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口,Socke原创 2021-02-22 16:58:03 · 293 阅读 · 0 评论