博客
关于我
Netty+SpringBoot+FastDFS+Html5实现聊天App详解(一)
阅读量:790 次
发布时间:2023-02-14

本文共 1153 字,大约阅读时间需要 3 分钟。

Netty学习

Netty结合SpringBoot、FastDFS和Html5实现聊天应用项目

Netty+SpringBoot+FastDFS+Html5实现聊天App,项目介绍

Netty+SpringBoot+FastDFS+Html5实现聊天App,项目github链接

本章练习完整代码链接

IO编程与NIO编程

传统IO编程性能分析

传统IO编程模型在客户端较少的情况下运行良好,但当业务需要支持成千上万的客户端连接时,传统IO模型可能不再适用。传统IO模型的关键问题在于每个连接创建后需要一个独立的线程来处理,这样会导致线程资源受限、线程切换效率低下以及IO读写效率不高的问题。

  • 线程资源受限:大量线程处于阻塞状态会造成资源浪费
  • 线程切换效率低下:固定CPU核数下频繁线程切换导致性能下降
  • IO效率不高:以字节为单位读写效率较低
  • NIO编程的优势

    NIO通过selector批量处理连接,减少线程数量,提升效率。

  • 线程资源优化:避免为每个连接创建独立线程,而是将连接绑定到固定的线程
  • 线程切换效率提升:线程数量大幅减少,切换更高效
  • IO效率提升:以字节块为单位读写,提升处理效率
  • Hello Netty

    服务器端实现

  • 定义主从线程组:bossGroup用于接受连接,workerGroup处理业务
  • 服务器启动类ServerBootstrap:配置主从线程、通道类型和子处理器
  • 绑定端口并启动服务:绑定8088端口并同步启动
  • 关闭优雅 Shutdown:关闭主从线程组
  • 初始化器实现

  • 创建子处理器:HelloServerInitializer继承ChannelInitializer
  • 注册编解码器:HttpServerCodec用于处理HTTP协议
  • 自定义助手类:CustomHandler处理响应
  • 消息处理逻辑:读取客户端消息并返回固定响应
  • Netty聊天小练习

    服务器端实现

  • 定义主从线程组:创建mainGroup和subGroup
  • 服务器启动:使用ServerBootstrap配置通道和子处理器
  • WebSocket协议支持:HttpServerCodec、ChunkedWriteHandler和HttpObjectAggregator
  • 路由配置:WebSocketServerProtocolHandler指定路由
  • 自定义消息处理:ChatHandler处理TextWebSocketFrame
  • 客户端实现

  • WebSocket连接:客户端连接ws://192.168.1.4:8088/ws
  • 消息发送和接收:通过JavaScript实现发送消息和接收消息
  • 消息显示:动态更新用户界面显示消息
  • 测试

    通过浏览器访问localhost:8088,验证服务器响应"hello netty~"

    转载地址:http://kccfk.baihongyu.com/

    你可能感兴趣的文章
    nacos本地可以,上服务器报错
    查看>>
    Nacos注册Dubbo(2.7.x)以及namespace配置
    查看>>
    Nacos注册中心有几种调用方式?
    查看>>
    nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
    查看>>
    Nacos源码分析:心跳机制、健康检查、服务发现、AP集群
    查看>>
    nacos看这一篇文章就够了
    查看>>
    Nacos简介、下载与配置持久化到Mysql
    查看>>
    Nacos简介和控制台服务安装
    查看>>
    Nacos管理界面详细介绍
    查看>>
    Nacos编译报错NacosException: endpoint is blank
    查看>>
    nacos自动刷新配置
    查看>>
    nacos运行报错问题之一
    查看>>
    Nacos部署中的一些常见问题汇总
    查看>>
    NACOS部署,微服务框架之NACOS-单机、集群方式部署
    查看>>
    Nacos配置Mysql数据库
    查看>>
    Nacos配置中心中配置文件的创建、微服务读取nacos配置中心
    查看>>
    Nacos配置中心集群原理及源码分析
    查看>>