KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 119|回复: 5

channel的WebSocketPacketReader没有reset

[复制链接]

55

主题

236

帖子

994

积分

高级会员

Rank: 4

积分
994
发表于 2018-7-9 18:25:12 | 显示全部楼层 |阅读模式
channel的pPacketReader没有reset,因而导致了回收之后,被重用的时候pPacketReader,假如还有遗留的数据信息的话,会导致channel处理packet时解包有问题
回复

使用道具 举报

55

主题

236

帖子

994

积分

高级会员

Rank: 4

积分
994
 楼主| 发表于 2018-7-9 18:27:10 | 显示全部楼层
handshake函数里
回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-7-9 19:37:13 | 显示全部楼层
handshake函数里似乎潜规则里一定会reset, 所有的通讯第一次一定会有一个包, if(bufferedReceives_.size() > 0), 然后意味着一定会触发条件中的pPacketReader_->reset();

不过标准做法确实应该在clearstate里清除一下。
已修改!
QQ:3603661
3603661@qq.com
回复

使用道具 举报

55

主题

236

帖子

994

积分

高级会员

Rank: 4

积分
994
 楼主| 发表于 2018-7-10 09:35:40 | 显示全部楼层
柯标 发表于 2018-7-9 19:37
handshake函数里似乎潜规则里一定会reset, 所有的通讯第一次一定会有一个包, if(bufferedReceives_.size( ...

如果是                满足于websocket::WebSocketProtocol::isWebSocketProtocol 和满足于websocket::WebSocketProtocol::handshake 这个条件就没有reset了,也就是websocket是不会reset
回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-7-10 13:39:29 | 显示全部楼层
哦, 有个return 。。 看漏了
QQ:3603661
3603661@qq.com
回复

使用道具 举报

55

主题

236

帖子

994

积分

高级会员

Rank: 4

积分
994
 楼主| 发表于 2018-7-10 13:45:11 | 显示全部楼层
柯标 发表于 2018-7-10 13:39
哦, 有个return 。。 看漏了

............
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2018-12-10 19:11 , Processed in 0.037628 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表