117 Star 1.1K Fork 361

Yeauty/netty-websocket-spring-boot-starter

 / 详情

netty WebSocketFrame 帧数问题,丢失数据问题

待办的
创建于  
2022-05-12 21:15

WebSocketServerHandler.java

这份代码看上去没有问题,实际是有问题的,还有一种情况,就是WebSocketFrame 过大时,会拆分处理,或者在测试时,可以将text类型消息变大点,大到1M,数据会出现多帧的情况

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {
        if (frame instanceof TextWebSocketFrame) {
            pojoEndpointServer.doOnMessage(ctx.channel(), frame);
            return;
        }
        if (frame instanceof PingWebSocketFrame) {
            ctx.writeAndFlush(new PongWebSocketFrame(frame.content().retain()));
            return;
        }
        if (frame instanceof CloseWebSocketFrame) {
            ctx.writeAndFlush(frame.retainedDuplicate()).addListener(ChannelFutureListener.CLOSE);
            return;
        }
        if (frame instanceof BinaryWebSocketFrame) {
            pojoEndpointServer.doOnBinary(ctx.channel(), frame);
            return;
        }
        if (frame instanceof PongWebSocketFrame) {
            return;
        }
    }

评论 (3)

黑小马 创建了任务

ContinuationWebSocketFrame

这个确实没有的

Chrome在发送WebsocketFrame时,会自动将大于127KB的数据分片传输,

黑小马 修改了描述
黑小马 修改了标题

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1893827 heixiaomas admin 1578961913 1420829 yeauty 1578951071
Java
1
https://gitee.com/Yeauty/netty-websocket-spring-boot-starter.git
git@gitee.com:Yeauty/netty-websocket-spring-boot-starter.git
Yeauty
netty-websocket-spring-boot-starter
netty-websocket-spring-boot-starter

搜索帮助

344bd9b3 5694891 D2dac590 5694891