步骤5:初始化ChannelPipeline完成之后,添加并设置ChannelHandler
代码:
public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); if (sslCtx != null) { p.addLast(sslCtx.newHandler(ch.alloc())); } }
ChannelHandler是Netty提供给用户定制和扩展的关键接口。利用ChannelHandler用户可以完成大多数的功能定制,例如消息编解码、心跳、安全认证、TSL/SSL认证、流量控制和流量整形等。
典型的网络事件如下:
链路注册;
链路激活;
链路断开;
接收到请求消息;
请求消息接收并处理完毕;
发送应答消息;
链路发生异常;
发生用户自定义事件。
Netty同时也提供了大量的系统ChannelHandler供用户使用,比较实用的系统ChannelHandler总结如下:
•系统编解码框架-ByteToMessageCodec;
•通用基于长度的半包解码器-LengthFieldBasedFrameDecoder;
•码流日志打印Handler-LoggingHandler;
•SSL安全认证Handler-SslHandler;
•链路空闲检测Handler-IdleStateHandler;
•流量整形Handler-ChannelTrafficShapingHandler;
•Base64编解码-Base64Decoder和Base64Encoder。
步骤6:绑定并启动监听端口
ChannelFuture f = b.bind(PORT).sync();
在绑定监听端口之前系统会做一系列的初始化和检测工作,完成之后,会启动监听端口,并将ServerSocketChannel注册到Selector上监听客户端连接.
步骤7:关闭服务器,断开监听端口
f.channel().closeFuture().sync();
好了。到此,Netty全部服务器运行流程到此为止。
ServerBootstrap的Hanlder模型
附件中有netty服务端的代码,内容不多,只是开发时最基础的配置,接下来的文章中,我会用例子来展示netty的开发全过程,届时会把整个项目上传分享。
相关推荐
### Netty开发视频教程知识点详解 #### 一、Netty简介与环境搭建 - **Netty概述**:Netty是一款高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器与客户端。它由JBOSS提出,后被Red ...
第三种是综合了前面二种的优点,会极大地提高ETL的开发速度和效率。 3. 数据抽取 数据抽取需要在调研阶段做大量的工作,首先要搞清楚数据是从几个业务系统中来,各个业务系统的数据库服务器运行什么DBMS,是否存在...
在 Netty 3 的配置中,我们需要确保包含所有必要的 Netty jar 包,以及其他可能的第三方库,如 Log4j 或 SLF4J 用于日志记录。 2. **src/main/java**:源代码目录,包含你的服务器或客户端应用的 Java 类。在 Netty...
Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在即时通讯场景下,Netty以其高效的I/O处理和非阻塞IO模型,确保了数据传输的高效性和实时性。 3. **Redis**...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在本文中,我们将深入探讨 Netty 实时通讯的原理与应用,以及如何利用它构建 WebSocket 服务。 WebSocket 是...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个“最新Netty中文文档CHM版”为中国的开发者提供了一个方便的中文学习资源,解决了阅读英文原版文档时的...
3. `netty-channel`: 实现了基础的I/O通道接口和相关的事件处理。 4. `netty-codec`: 提供了各种编解码器,如ByteToMessageDecoder和MessageToByteEncoder。 5. `netty-codec-http`和`netty-codec-http2`: 对...
本资源提供的是一个基于Netty框架开发的Android点对点聊天软件的源代码。Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。它在Java NIO(非阻塞I/O)的基础上...
【标题】"xunyu_smgp:smgp协议netty开发" 涉及的主要内容是使用Java的Netty框架来实现SMGP(Short Message Gateway Protocol)协议。SMGP是一种专用于短信网关的通信协议,常用于移动通信运营商与第三方服务提供商...
11. **兼容性和扩展性**:Netty 与各种第三方库和框架有良好的兼容性,如 Protobuf、Avro、Thrift 等,同时也易于扩展,适应不同应用场景。 12. **异常处理**:Netty 提供了统一的异常处理机制,便于在应用程序中...
Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本书旨在帮助读者全面掌握Netty的核心概念、设计模式以及最佳实践。 首先,PDF版本的《Netty权威指南》提供了...
Netty是由JBOSS组织开发的一个开源项目,它提供了一个高效、灵活且可扩展的事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 Netty的核心概念之一是其异步事件驱动的网络编程模型。在...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个“Netty学习资料.zip”压缩包包含了韩顺平老师关于 Netty 的一系列教学资源,包括资料、笔记、课件、代码...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在本文中,我们将深入探讨Netty 5的三个基础示例,帮助初学者快速上手。 首先,让我们了解Netty的核心概念。...
7. **错误处理与调试**:在实际开发中,务必考虑网络异常、数据解析错误等情况,做好相应的错误处理和日志记录。 综上所述,Unity与Netty结合ProtoBuf-net进行通信,能实现高效、低延迟的数据传输,提高游戏的网络...
SpringBoot和Netty整合是现代Java开发中一个常见的技术组合,尤其在构建高性能、轻量级的网络应用时。SpringBoot以其便捷的依赖管理和自动配置功能简化了Java应用的搭建和部署,而Netty则是一个高效的异步事件驱动的...
本项目是基于Spring Boot、Spring MVC、MyBatis和Netty-Sokey.io构建的一个简易即时通讯聊天系统。这个系统展示了如何将这些流行的Java技术框架整合在一起,实现一个功能完善的实时通信平台。以下是对各部分的详细...
3. `ConsoleApp1` 和 `WindowsFormsApp1`:这两个可能是客户端的示例应用,一个是控制台应用程序,另一个可能是使用Windows Forms界面的应用,两者都可能用C#编写并使用Netty进行通信。 4. `...