Files

boot-starter-netty项目说明

几种io的对比

io类型 通讯模型 描述
bio 阻塞同步通讯 使用一个线程处理一个请求
伪nio 阻塞同步通讯 使用线程池,使用n个线程处理m个请求
nio 非阻塞同步通讯 使用一个线程处理多个请求,难度大,不方便调试
aio 非阻塞异步通讯 难度大,不方便调试

jdk自带的nio和netty的对比

  • jdk自带的nio的api繁杂、工作量和工作难度大、入门门槛高需要精通多线程、jdk的nio存在bug会出现selector空轮训导致cpu跑满
  • netty商用成功。可扩展性强、入门门槛低、成熟稳定、性能强

websocket简单介绍

websocket建立连接

客户端发起握手请求,服务端响应请求,建立连接。

websocket的生命周期

打开事件

消息事件

错误事件

  • 能感知websocket所有方法的错误

关闭事件

  • 服务端端关闭底层tcp连接
  • 客户端发起TCP close

基于netty实现websocket协议