从零开始学Netty
lwtxzwt
互联网程序员一枚!
展开
-
从零开始学Netty (四)-- 实战实现前后端分离的IM框架
网上有很多Netty的教程DEMO,但是前后端分离的例子可能比较少。这次我将会使用SpringBoot + Netty + WebSocket的技术栈,实现前后端分离的即时通讯(IM)的DEMO。 主要功能 服务端接收的消息主要分以下几类: 1、CONNECT:当websocket 第一次open的时候,初始化channel,把用的channel 和 userid 关联起来。 2、CHAT:聊天类型的消息,把聊天记录保存到数据库,同时标记消息的签收状态[未签收]。如果接收者在线,则转发给相应的.原创 2020-11-29 18:47:48 · 1043 阅读 · 0 评论 -
从零开始学Netty (三)-- TCP粘包/半包分析 及 解决方案
什么是粘包/半包 首先来看一个Demo,在客户端连接上服务器后,给服务器发送1000次的数据。 public void channelActive(ChannelHandlerContext ctx) throws Exception { ByteBuf msg = null; String request = "demo test!" + System.getProperty("line.separator"); for(int i = 0;.原创 2020-11-14 19:55:02 · 522 阅读 · 0 评论 -
从零开始学Netty (二)-- 初始Netty核心组件 及 聊天室Demo
我们今天将通过一个Demo来理解Netty的几个主要组件。Netty的开发,主要是配置和实现各种Handler处理器,而其他是由Netty来替我们实现,所以我更愿意称其为“模板化”的开发模型。 “模板化”的Netty 首先看一个聊天室的Demo 服务端代码 public class DemoServer { public static void main(String[] args) throws InterruptedException { EventLoopGroup原创 2020-11-07 19:04:08 · 656 阅读 · 0 评论 -
从零开始学Netty (一)-- Linux网络IO模型 及 Java实现BIO、NIO、AIO
下面准备做一个Netty的系列教程,适合初次接触Netty或网络通讯的同学了解阅读。本文主要介绍Linux网络IO模型、BIO、NIO、AIO及代码实现。至于更基础的OSI、TCP/IP、HTTP等,相信大家都不陌生就不一一赘述了。由于Netty5停止维护了,所以后面所涉及的Netty都是指Netty4这个版本,故也不支持AIO。 Linux网络IO模型 一般服务器都运行在Linux环境下,故这里也只讨论Linux环境下的。 阻塞I/O模型 应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好原创 2020-10-23 22:00:55 · 689 阅读 · 0 评论