美文网首页
Netty入门

Netty入门

作者: 欧阳峰_oyf | 来源:发表于2018-06-03 21:12 被阅读0次

原生NIO的缺点(New Input/ Output))

类库和api繁杂

客户端需要断连,重连,异常处理,网络异常

臭名昭著的epoll bug,它会导致Selector空轮询,最终导致CPU 100%。(在SelectionKey.cancel()之后马上进行了一次select调用将fd从poll(epoll)中移除:)

netty的优势(NIO客户端服务器框架,非阻塞同步的通信模式)

api简单(channel变化)

性能高

WebSocket

h5协议

握手机制

基于http的协议,握手后,建立连接就不需要握手请求的HTTP请求的参与

服务器跟客户端随时互相传输数据(互相推送)

实时通信

websocket连接步骤,

1.客户端发布请求

2.服务器响应请求

3.连接成功

websocket的关闭(服务器关闭底层tcp连接,客户端发起TCP的close)

netty代码(服务端)

1.创建一个channel的group(channelGroup)

2.创建一个接收处理的类(继承simpleChannelInBoundHandler)实现里面几个方法

channelActive 客户端与服务的连接时候调用

channelinActivr,客户端与服务的断开

channelReadComplete,接收客户端数据后

exception'caught有一个异常的调用

messageReceived 处理客户的消息(msg有两种,一种代表fullhttprequest-握手请求,一种代表自己的业务)

3.需要用channelinitializer初始化各个创建的组建(simpleChannelInBoundHandler)

4.创建serverbootstrap,等配置,等待客户端连接

解码器

1.定长解码器(FixedLengthFrameDecoder)

2.特殊分隔符解码器 DelimiterBasedFrameDecoder(1024,delimiter)

3.包头不固定长度的解码器:LengthFieldBasedFrameDecoder

4.包头添加总包长度字节 LengthFieldPrepender

https://www.cnblogs.com/rainy-shurun/p/5213086.html

相关文章

  • netty服务端和客户端

    netty简单入门:netty版本大致版本分为 netty3.x 和 netty4.x、netty5.x n...

  • netty 线程模型(未完成)

    参考 Netty原理架构解析 netty 入门 netty工作原理架构图+ 虽然Netty的线程模型基于主从Rea...

  • Netty 实现简单的通讯

    一、netty入门 一,Netty是什么 1,Netty是由JBOSS提供的一个java开源框架。 2,Netty...

  • Netty入门实践

    Netty基础概念 欢迎访问微信原文:Netty入门实践 Bootstrap 和 ServerBootstrap:...

  • netty通信框架

    Netty入门教程——认识Netty彻底理解Netty,这一篇文章就够了 Netty特点 并发高 传输快 封装好 ...

  • Netty 入门

    title: Netty 入门date: 2021/04/06 09:37 一、Netty 概述 1.1 Nett...

  • Netty高速网络通讯(一)

    1、Netty基础入门 Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应...

  • Netty之ByteBuf

    通过Netty之Helloworld一文,我们简单的对Netty进行了入门,本文说一下Netty的数据容器Byte...

  • 1.Netty入门

    Netty入门 1.Netty介绍 (1)百度百科介绍: Netty是由JBOSS提供的一个java开源框架。Ne...

  • 高性能NIO框架Netty-对象传输

    上篇文章高性能NIO框架Netty入门篇我们对Netty做了一个简单的介绍,并且写了一个入门的Demo,客户端往服...

网友评论

      本文标题:Netty入门

      本文链接:https://www.haomeiwen.com/subject/mhxlsftx.html