Fork me on GitHub

随笔分类 -  响应式系统

摘要:简介 上一篇文章中,我们提到了如何在netty中配置TLS,让他支持HTTP2。事实上TLS并不是https的一个必须要求,它只是建议的标准。那么除了TLS之外,还需要如何设置才能让netty支持http2呢?一起来看看吧。 基本流程 netty支持http2有两种情况,第一种情况是使用tls,在这 阅读全文
posted @ 2021-10-22 14:25 flydean 阅读(1562) 评论(2) 推荐(1) 编辑
摘要:简介 我们知道虽然HTTP2协议并不强制使用HTTPS,但是对大多数浏览器来说,如果要使用HTTP2的话,则必须使用HTTPS,所以我们需要了解如何在netty的TLS中支持http2。 TLS的扩展协议NPN和ALPN HTTP2协议是从spdy协议发展而来的,无论是spdy还是http2都为了能 阅读全文
posted @ 2021-10-20 09:06 flydean 阅读(811) 评论(1) 推荐(0) 编辑
摘要:简介 在网速快速提升的时代,浏览器已经成为我们访问各种服务的入口,很难想象如果离开了浏览器,我们的网络世界应该如何运作。现在恨不得把操作系统都搬上浏览器。但是并不是所有的应用都需要浏览器来执行,比如服务器和服务器之间的通信,就需要使用到自建客户端来和服务器进行交互。 本文将会介绍使用netty客户端 阅读全文
posted @ 2021-10-08 11:18 flydean 阅读(5940) 评论(1) 推荐(1) 编辑
摘要:简介 在上一篇文章中,我们使用了netty构建了可以处理websocket协议的服务器,在这个服务器中,我们构建了特制的handler用来处理HTTP或者websocket请求。 在一个handler中处理两种不同的请求,对于某些有代码洁癖的人可能忍受不了。那么,有没有可能将普通的HTTP请求和we 阅读全文
posted @ 2021-09-29 10:25 flydean 阅读(874) 评论(1) 推荐(0) 编辑
摘要:简介 websocket是一个优秀的协议,它是建立在TCP基础之上的,兼容HTTP的网络协议。通过Websocket我们可以实现客户端和服务器端的即时通讯,免除了客户端多次轮循带来的性能损耗。 既然websocket这么优秀,那么怎么在netty中使用websocket呢? netty中的webso 阅读全文
posted @ 2021-09-27 09:22 flydean 阅读(16493) 评论(2) 推荐(3) 编辑
摘要:简介 CORS的全称是跨域资源共享,他是一个基于HTTP-header检测的机制,通过对HTTP-header进行控制,可以实现对跨域资源的权限管理功能。在之前的CORS详解文章中,我们已经对CORS有了基本的解释。 本文将会从netty的实现角度,讲解如何在netty中实现CORS。 服务端的CO 阅读全文
posted @ 2021-09-17 09:45 flydean 阅读(600) 评论(1) 推荐(1) 编辑
摘要:简介 上一篇的文章中,我们讲到了如何从HTTP服务器中下载文件,和搭建下载文件服务器应该注意的问题,使用的GET方法。本文将会讨论一下常用的向服务器提交数据的POST方法和如何向服务器上传文件。 GET方法上传数据 按照HTTP的规范,PUT一般是向服务器上传数据,虽然不提倡,但是也可以使用GET向 阅读全文
posted @ 2021-09-06 12:56 flydean 阅读(1485) 评论(1) 推荐(0) 编辑
摘要:简介 上一篇文章我们学习了如何在netty中搭建一个HTTP服务器,讨论了如何对客户端发送的请求进行处理和响应,今天我们来讨论一下在netty中搭建文件服务器进行文件传输中应该注意的问题。 文件的content-type 客户端向服务器端请求一个文件,服务器端在返回的HTTP头中会包含一个conte 阅读全文
posted @ 2021-09-03 10:12 flydean 阅读(1039) 评论(1) 推荐(1) 编辑
摘要:简介 上一篇文章,我们搭建了一个支持中文的HTTP服务器,并且能够从浏览器访问,并获取到相应的结果。虽然浏览器在日常的应用中很普遍,但是有时候我们也有可能从自建的客户端来调用HTTP服务器的服务。 今天给大家介绍如何自建一个HTTP客户端来和HTTP服务器进行交互。 使用客户端构建请求 在上一篇文章 阅读全文
posted @ 2021-08-31 20:38 flydean 阅读(852) 评论(1) 推荐(0) 编辑
摘要:简介 之前讲了那么多关于netty的文章,都是讲netty的底层原理和实现,各位小伙伴一定都在想了,看了这么多篇文章,netty到底能干啥呢?今天让我们来使用netty简简单单搭一个支持中文的服务器,展示一下netty的威力。 netty的HTTP支持 今天我们搭的服务器是支持HTTP1.1的服务器 阅读全文
posted @ 2021-08-30 21:33 flydean 阅读(499) 评论(1) 推荐(0) 编辑
摘要:简介 netty中有很多适配不同协议的编码工具,对于流行的google出品的protobuf也不例外。netty为其提供了ProtobufDecoder和ProtobufEncoder两个工具还有对应的frame detection,接下来我们会通过一个例子来详细讲解如何在netty中使用proto 阅读全文
posted @ 2021-08-25 07:34 flydean 阅读(716) 评论(1) 推荐(0) 编辑
摘要:简介 netty之所以强大,是因为它内置了很多非常有用的编码解码器,通过使用这些编码解码器可以很方便的搭建出非常强大的应用程序,今天给大家讲讲netty中最基本的内置编码解码器。 netty中的内置编码器 在对netty的包进行引入的时候,我们可以看到netty有很多以netty-codec开头的a 阅读全文
posted @ 2021-08-20 17:29 flydean 阅读(1198) 评论(1) 推荐(1) 编辑
摘要:简介 上篇文章我们讲到了netty中怎么自定义编码和解码器,但是自定义实现起来还是挺复杂的,一般没有特殊必要的情况下,大家都希望越简单越好,其难点就是找到ByteBuf中的分割点,将ByteBuf分割成为一个个的可以处理的单元。今天本文讲讲netty中自带的分割处理机制。 Frame detecti 阅读全文
posted @ 2021-08-19 09:17 flydean 阅读(418) 评论(0) 推荐(0) 编辑
摘要:简介 在之前的系列文章中,我们提到了netty中的channel只接受ByteBuf类型的对象,如果不是ByteBuf对象的话,需要用编码和解码器对其进行转换,今天来聊一下netty自定义的编码和解码器实现中需要注意的问题。 自定义编码器和解码器的实现 在介绍netty自带的编码器和解码器之前,告诉 阅读全文
posted @ 2021-08-18 10:19 flydean 阅读(1917) 评论(1) 推荐(0) 编辑
摘要:简介 在之前的netty系列文章中,我们讲到了如何将对象或者String转换成为ByteBuf,通过使用netty自带的encoder和decoder可以实现非常方便的对象和ByteBuf之间的转换,然后就可以向channel中随意写入对象和字符串了。 使用netty自带的编码器当然很好,但是如果你 阅读全文
posted @ 2021-08-16 10:20 flydean 阅读(917) 评论(2) 推荐(0) 编辑
摘要:简介 在之前的文章中,我们讲到了怎么使用netty建立聊天室,但是这样的简单的聊天室太容易被窃听了,如果想要在里面说点悄悄话是很不安全的,怎么办呢?学过密码学的朋友可能就想到了一个解决办法,聊天的时候对消息加密,处理的时候再对消息解密即可。 当然在netty中上述的工作都不需要我们手动来实现,net 阅读全文
posted @ 2021-08-15 16:25 flydean 阅读(799) 评论(1) 推荐(0) 编辑
摘要:简介 在之前的系列文章中,我们到了使用netty做聊天服务器,聊天服务器使用的SocketChannel,也就是说底层的协议使用的是Scoket。今天我们将会给大家介绍如何在netty中使用UDP协议。 UDP协议 UDP( User Datagram Protocol ),也叫用户数据报协议。 U 阅读全文
posted @ 2021-08-14 15:25 flydean 阅读(2036) 评论(0) 推荐(1) 编辑
摘要:简介 经过之前的系列文章,我们已经知道了netty的运行原理,还介绍了基本的netty服务搭建流程和消息处理器的写法。今天本文会给大家介绍一个更加复杂的例子,文本聊天室。 聊天室的工作流程 今天要介绍的是文本聊天室,对于文本聊天室来说,首先需要建立一个服务器,用于处理各个客户端的连接,对于客户端来说 阅读全文
posted @ 2021-08-13 09:14 flydean 阅读(370) 评论(1) 推荐(0) 编辑
摘要:简介 我们在使用客户端和服务器端连接的过程中,可能会因为各种问题导致客户端和服务器的连接发生中断,遇到这种情况,一般情况下我们需要使用监控程序去监听客户端和服务器端的连接,如果第一时间发现连接断开了,就需要手动去重连。比较麻烦,今天给大家介绍一种netty中自动重连的方式。 使用netty建立连接 阅读全文
posted @ 2021-08-12 08:36 flydean 阅读(3628) 评论(1) 推荐(0) 编辑
摘要:简介 在之前的文章中我们提到了,对于NioSocketChannel来说,它不接收最基本的string消息,只接收ByteBuf和FileRegion。但是ByteBuf是以二进制的形式进行处理的,对于程序员来说太不直观了,处理起来也比较麻烦,有没有可能直接处理java简单对象呢?本文将会探讨一下这 阅读全文
posted @ 2021-08-11 10:05 flydean 阅读(441) 评论(0) 推荐(1) 编辑