# springboot-netty-demo **Repository Path**: rstyro/springboot-netty-demo ## Basic Information - **Project Name**: springboot-netty-demo - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-30 - **Last Updated**: 2021-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 由IETF 发布的WebSocket RFC,定义了6 种帧,Netty 为它们每种都提供了一个POJO 实现。 WebSocketFrame 中定义的对应6种帧的类型 ``` BinaryWebSocketFrame 包含了二进制数据 TextWebSocketFrame 包含了文本数据 ContinuationWebSocketFrame 包含属于上一个BinaryWebSocketFrame或TextWebSocketFrame 的文本数据或者二进制数据 CloseWebSocketFrame 表示一个CLOSE 请求,包含一个关闭的状态码和关闭的原因 PingWebSocketFrame 请求传输一个PongWebSocketFrame PongWebSocketFrame 作为一个对于PingWebSocketFrame 的响应被发送 ``` 基于WebSocket 聊天服务器的ChannelHandler ``` ChannelHandler 职 责 HttpServerCodec 将字节解码为HttpRequest、HttpContent 和LastHttpContent。并将HttpRequest、HttpContent 和LastHttpContent 编码为字节 ChunkedWriteHandler 写入一个文件的内容 HttpObjectAggregator 将一个HttpMessage 和跟随它的多个HttpContent 聚合为单个FullHttpRequest 或者FullHttpResponse(取决于它是被用来处理请求还是响应)。安装了这个之后, ChannelPipeline 中的下一个ChannelHandler 将只会收到完整的HTTP 请求或响应 HttpRequestHandler 处理FullHttpRequest(那些不发送到/ws URI 的请求) WebSocketServerProtocolHandler 按照WebSocket 规范的要求,处理WebSocket 升级握手、PingWebSocketFrame 、PongWebSocketFrame 和CloseWebSocketFrame TextWebSocketFrameHandler 处理TextWebSocketFrame 和握手完成事件 ```