netty+websocket+quartz实现消息定时推送&&IM聊天室
在讲功能实现之前,我们先来捋一下底层的原理,后面附上工程结构及代码
1.NIO
NIO主要包含三大核心部分:缓冲区(Buffer)、通道(Channel)、选择器(Selector)。
下图是NIO通信的结构图。
NIO之所以是NIO,背后有Selector
Selector可以实现:一个 I/O 线程可以并发处理 N 个客户端连接和读写操作,这从根本上解决了传统同步阻塞 I/O 一连接一线程模型,架构的性能、弹性伸缩能力和可靠性都得到了极大的提升。
1.1缓冲区(Buffer)
一个用于特定基本数据类 型的容器。由 java.nio 包定义的,所有缓冲区 都是 Buffer 抽象类的子类.。Java NIO 中的 Buffer 主要用于与 NIO 通道进行交互,数据是从通道读入缓冲区,从缓冲区写入通道中。
缓冲区的基本属性
这部分内容较为枯燥,运用netty框架后直接调API,可以暂时跳过
Buffer 中的重