KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 147|回复: 3

H5与kbe大数据传送的bug及建议

[复制链接]

55

主题

236

帖子

994

积分

高级会员

Rank: 4

积分
994
发表于 2018-9-13 11:09:54 | 显示全部楼层 |阅读模式
bug:
版本9.几,websocket_protocal.cpp:312
原来的:
        msg_payload_length = ((uint64)(pPacket->data() + pPacket->rpos() + 0) << 56) |
                         ((uint64)(pPacket->data() + pPacket->rpos() + 1) << 48) |
                         ((uint64)(pPacket->data() + pPacket->rpos() + 2) << 40) |
                         ((uint64)(pPacket->data() + pPacket->rpos() + 3) << 32) |
                         ((uint64)(pPacket->data() + pPacket->rpos() + 4) << 24) |
                         ((uint64)(pPacket->data() + pPacket->rpos() + 5) << 16) |
                         ((uint64)(pPacket->data() + pPacket->rpos() + 6) << 8) |
                         ((uint64)(pPacket->data() + pPacket->rpos() + 7));

修复后:
        msg_payload_length = ((uint64)(*(pPacket->data() + pPacket->rpos() + 0)) << 56) |
                         ((uint64)(*(pPacket->data() + pPacket->rpos() + 1)) << 48) |
                         ((uint64)(*(pPacket->data() + pPacket->rpos() + 2)) << 40) |
                         ((uint64)(*(pPacket->data() + pPacket->rpos() + 3)) << 32) |
                         ((uint64)(*(pPacket->data() + pPacket->rpos() + 4)) << 24) |
                         ((uint64)(*(pPacket->data() + pPacket->rpos() + 5)) << 16) |
                         ((uint64)(*(pPacket->data() + pPacket->rpos() + 6)) << 8) |
                         ((uint64)(*(pPacket->data() + pPacket->rpos() + 7)));

取的地址移位,所以如果有大数据进来的话,那么会导致msg_payload_length 错误


建议:
1. H5的kbengine.js对大数据发送这块做得不够完善,发送大数据时,包体长度依旧是采用2个字节存
2. kbengine服务端对大数据接收不够友好,例如部分数据长度、数据大小的宏定义 定义得不够清晰,感觉是以前写代码中需要另外完善一些模块时,直接拿过来用,导致如果想要接收大数据时,那么是需要改宏定义的值,但是一旦改了,又牵动别的模块。
回复

使用道具 举报

55

主题

236

帖子

994

积分

高级会员

Rank: 4

积分
994
 楼主| 发表于 2018-9-13 11:12:53 | 显示全部楼层
大佬是不是要送点论坛积分给我表彰下...  ^.^
回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-9-13 16:34:57 | 显示全部楼层
已经提交了。

1:似乎, 目前的政策是不允许客户端提交超过65535字节的数据, 防止恶意传输。
这个只能后续考虑加个选项让服务器开放限制了
2:最早只能接收2字节数据长度,后来服务器内部补充了更大的长度机制。  这个只能你先看着改了, 后续再考虑放开支持
QQ:3603661
3603661@qq.com
回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-9-13 16:37:11 | 显示全部楼层
小笙 发表于 2018-9-13 11:12
大佬是不是要送点论坛积分给我表彰下...  ^.^

你的贡献都记住了, 很早的时候你找工作有人求推荐都推荐你了。

有贡献以后自然会有好处。
没有送积分选项。。
QQ:3603661
3603661@qq.com
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2018-12-10 18:22 , Processed in 0.027470 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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