
Netty
Coder_py
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Netty + websocket聊天室
Netty + websocket聊天室 程序处理逻辑 启用websocket 从标准的HTTP或者HTTPS协议切换到WebSocket时,将会使用一种称为升级握手的机制。因此,使用WebSocket的应用程序将始终以HTTP/S作为开始,然后再执行升级。这个升级动作发生的确切时刻特定于应用程序;它可能会发生在启动时,也可能会发生在请求了某个特定的URL之后 约定: 如果被请求的 URL ...原创 2020-05-06 15:52:43 · 481 阅读 · 0 评论 -
Netty多人与群组聊天
Netty多人与群组聊天 消息设计 图示: public abstract class Packet { /** * 协议版本 */ @JSONField(deserialize = false, serialize = false) private Byte version = 1; @JSONField(serialize = fals...原创 2020-05-02 21:39:52 · 833 阅读 · 0 评论 -
Netty私有协议栈设计
Netty私有协议栈设计 消息定义 消息头 消息主体 图示: Header: public class Header { private int crcCode = 0xadaf0105; // 唯一的通信标志 private int length; // 总消息的长度 header + body private long sessionID; // ...原创 2020-05-01 16:44:04 · 505 阅读 · 0 评论 -
剖析LengthFieldBasedFrameDecoder
剖析LengthFieldBasedFrameDecoder 下面这个测试用例是Netty自带的: @Test public void testDiscardTooLongFrame1() { ByteBuf buf = Unpooled.buffer(); buf.writeInt(32); for (int i = 0; i < 3...原创 2020-04-30 16:01:28 · 377 阅读 · 0 评论 -
Netty之Http
Netty之Http Http协议 HTTP是一个属于应用层的面向对象的协议,由于其使用简捷和快速的方式,非常适用于分布式超媒体信息系统。 HTTP协议特点 支持Server/Client模式; 简单——客户向服务器请求服务时,只需要指定服务的URL(统一资源定位符)并且携带对应的请求参数或消息体即可; 灵活——HTTP允许传输任意类型的数据对象,内容类型由HTTP消息头中的Conte...原创 2020-04-23 11:25:04 · 754 阅读 · 0 评论 -
Netty-TCP拆包/粘包
Netty-TCP拆包/粘包 TCP拆包/粘包 TCP 是一个面向字节流的协议,它是性质是流式的,所以它并没有分段。就像水流一样,你没法知道什么时候开始,什么时候结束。所以它会根据当前的套接字缓冲区的情况进行拆包或是粘包 粘包问题图示: 客户端发送两个数据包D1&D2给服务端,因为服务端一次读取的字节数是不确定的,所以可能出现: 正常情况,服务端分两次读取到了两个独立的数据包 服...原创 2020-04-17 19:35:12 · 282 阅读 · 0 评论 -
Netty 的组件和设计
Netty 的组件和设计 Channel & EventLoop & ChannelFuture 概览: Channel — Socket EventLoop — 控制流、多线程处理、并发 ChannelFuture — 异步通知 Channel 接口 public interface Channel extends AttributeMap, ChannelOu...原创 2020-04-15 20:48:02 · 310 阅读 · 0 评论