Netty
Coder_py
这个作者很懒,什么都没留下…
展开
-
Netty + websocket聊天室
Netty + websocket聊天室程序处理逻辑启用websocket从标准的HTTP或者HTTPS协议切换到WebSocket时,将会使用一种称为升级握手的机制。因此,使用WebSocket的应用程序将始终以HTTP/S作为开始,然后再执行升级。这个升级动作发生的确切时刻特定于应用程序;它可能会发生在启动时,也可能会发生在请求了某个特定的URL之后约定:如果被请求的 URL ...原创 2020-05-06 15:52:43 · 419 阅读 · 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 · 769 阅读 · 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 · 440 阅读 · 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 · 316 阅读 · 0 评论 -
Netty之Http
Netty之HttpHttp协议HTTP是一个属于应用层的面向对象的协议,由于其使用简捷和快速的方式,非常适用于分布式超媒体信息系统。HTTP协议特点支持Server/Client模式;简单——客户向服务器请求服务时,只需要指定服务的URL(统一资源定位符)并且携带对应的请求参数或消息体即可;灵活——HTTP允许传输任意类型的数据对象,内容类型由HTTP消息头中的Conte...原创 2020-04-23 11:25:04 · 687 阅读 · 0 评论 -
Netty-TCP拆包/粘包
Netty-TCP拆包/粘包TCP拆包/粘包TCP 是一个面向字节流的协议,它是性质是流式的,所以它并没有分段。就像水流一样,你没法知道什么时候开始,什么时候结束。所以它会根据当前的套接字缓冲区的情况进行拆包或是粘包粘包问题图示:客户端发送两个数据包D1&D2给服务端,因为服务端一次读取的字节数是不确定的,所以可能出现:正常情况,服务端分两次读取到了两个独立的数据包服...原创 2020-04-17 19:35:12 · 238 阅读 · 0 评论 -
Netty 的组件和设计
Netty 的组件和设计Channel & EventLoop & ChannelFuture概览:Channel — SocketEventLoop — 控制流、多线程处理、并发ChannelFuture — 异步通知Channel 接口public interface Channelextends AttributeMap, ChannelOu...原创 2020-04-15 20:48:02 · 265 阅读 · 0 评论