开发者社区> 问答> 正文

netty websocket通讯接收数据不完整问题!?报错

最近在做一个java web项目,里面需要集成netty websocket。java web项目作为服务器端已经完全可以和客户端进行数据通信。但是存在一个问题,当客户端向服务器端发送一个超长json串时候,提示Max frame length of 65536 has been exceeded。于是我在WebSocketServerHandler 初始化握手对象时,指定了maxFramePayloadLength 的长度:

WebSocketServerHandshakerFactory wsFactory= new WebSocketServerHandshakerFactory(getWebSocketLocation(req), null, true,6553600);。

但此时客户端再想服务端发送这个较长的json数据时候,提示net.sf.json.JSONException: Unterminated string at character 131072 of。json解析异常,我发现这个超长的json在被netty接收的时候切断了,到达一定长度之后的部分都没获取到,最后的括号等自然没有了。

找了相关资料发现通过配置netty内置jie ma qi可以处理数据半包等问题,于是initChannel时增加了:addLast("frameDecoder", new LengthFieldBasedFrameDecoder(65536,0,2));

然而此时出现的问题已经无从解决了。增加上行代码后因为客户端已经无法与服务端建立websocket通信了,没有任何报错信息。点击发送信息,就是提示websocket未建立!

配置addLast("frameDecoder", new LengthFieldBasedFrameDecoder(65536,0,2));这个netty内置的jie ma qi竟然还会影响整个websocket通讯吗?请大神不吝赐教!(jie ma qi是屏蔽词)

展开
收起
爱吃鱼的程序员 2020-06-06 21:29:10 1988 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>1. LengthFieldBasedFrameDecoder这个是指你的每个报文的长度是固定的,你websocket明显与这个不符啊。</p>
    

    2. 另外针对题主说的json解析失败的问题,需要搞清楚是在客户端被截断的还是服务端接收的时候被截断的

                            回复 <a class="referer" target="_blank">@梵高Sakalaka</a>  : 遇到同样的问题,是什么原因呢
                        
    
                            是在在服务器端被截断的。
                        
    
                        <p>楼主解决了吗, 我这也遇到这个问题了....</p>
    
                    
    
                            回复 <a class="referer" target="_blank">@facio</a>  : 已经解决了。有需要可以私信发我企鹅号,demo可以发你
                        
    
                            我也一样,不知道楼主对这个问题是否有解答
                        
    
                        <pre>addLast(new WebSocketServerProtocolHandler("yourpath", null, true));</pre> 
    

    true是关键
     

                            当初试过了,和这个好像没关系。
                        
    
                        <p>你好,我这边也遇到了同样的问题,请问是如何解决的 ?能分享一下解决方案吗?十分感谢🙏</p>
    
    2020-06-06 21:29:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载