请选择 进入手机版 | 继续访问电脑版

默认
发表评论 31
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教UDP数据发送长度被截断,内容不完整
聊天信息加密后使用upd通信,内容越长加密结果字符串越长,发送到服务器格式json对象直接错误,打印查看该字符串都不是一个完整的json,被截取了,是没有发送完嘛,这种情况可以怎么处理????

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:求教IM中文件消息时,文件传输卡顿,聊天发消息会变迟钝下一篇:新手求教im的数据库表应该怎么设计?
推荐方案
评论 31
udp协议本身就是有度限制的,《UDP中一个包的大小最大能多大》。

你的数据准确的长度有多少字节?
签名: 《Protobuf到底比JSON快几倍?全方位实测!》http://www.52im.net/thread-4095-1-1.html
3 楼: harlan Lv.2 楼主 1 个月前 | 显示全部楼层
引用:JackJiang 发表于 2022-11-02 11:24
udp协议本身就是有度限制的,《UDP中一个包的大小最大能多大》。

你的数据准确的长度有多少字节?

聊天消息,长度不知道控制在多少
引用:harlan 发表于 2022-11-02 16:00
聊天消息,长度不知道控制在多少

那就用tcp
签名: 《Protobuf到底比JSON快几倍?全方位实测!》http://www.52im.net/thread-4095-1-1.html
5 楼: harlan Lv.2 楼主 1 个月前 | 显示全部楼层

怎么处理udp发送比较长的信息,现在用这个sdk就是发送比较长的发不出去,到服务器json解析直接失败,查看json信息json串不完整,只有一部分导致解析失败报错
引用:harlan 发表于 2022-11-03 10:21
怎么处理udp发送比较长的信息,现在用这个sdk就是发送比较长的发不出去,到服务器json解析直接失败,查看 ...

udp你要硬搞长包,那就只能分片分包传输,然后收到后再组包,这又涉及到分片顺序、包的送达质量保证等等,等做好这些你就会发些,这不就是tcp吗。。。
签名: 《Protobuf到底比JSON快几倍?全方位实测!》http://www.52im.net/thread-4095-1-1.html
7 楼: harlan Lv.2 楼主 1 个月前 | 显示全部楼层
引用:JackJiang 发表于 2022-11-03 10:23
udp你要硬搞长包,那就只能分片分包传输,然后收到后再组包,这又涉及到分片顺序、包的送达质量保证等等 ...

那有没有好点的加密,现在用的加密AES结果出来是数据长度是成倍增长的,有没得好点的解决加密的办法
引用:harlan 发表于 2022-11-03 10:42
那有没有好点的加密,现在用的加密AES结果出来是数据长度是成倍增长的,有没得好点的解决加密的办法

AES加密强度太大了,换个弱一点的
签名: 《Protobuf到底比JSON快几倍?全方位实测!》http://www.52im.net/thread-4095-1-1.html
9 楼: harlan Lv.2 楼主 1 个月前 | 显示全部楼层
引用:JackJiang 发表于 2022-11-03 10:51
AES加密强度太大了,换个弱一点的

就是没有找到合适的,有没得推荐,最好是加密后长度和明文长度差不多那种,楼主可以给个方案吗
引用:harlan 发表于 2022-11-03 11:18
就是没有找到合适的,有没得推荐,最好是加密后长度和明文长度差不多那种,楼主可以给个方案吗

你研究一下加密算法用RC4:https://www.cnblogs.com/mfrbuaa/p/5405809.html
签名: 《Protobuf到底比JSON快几倍?全方位实测!》http://www.52im.net/thread-4095-1-1.html
引用:JackJiang 发表于 2022-11-03 12:35
你研究一下加密算法用RC4:https://www.cnblogs.com/mfrbuaa/p/5405809.html

楼主,我在问个问题,使用udp发送C2C消息,长度稍微在200左右之后服务器这边可以接收到消息,onTransferMessage4C2C里面的日志都是正常的,但是接收方并没有收到


这是打印的日志

这是打印的日志
引用:JackJiang 发表于 2022-11-03 12:35
你研究一下加密算法用RC4:https://www.cnblogs.com/mfrbuaa/p/5405809.html

udp情况,发送短消息可以正常使用,发送150+长度接收方收不到信息,下面是日志打印
5~M@UD[H2O({3YIIVB5)UDY.png
引用:harlan 发表于 2022-11-03 15:56
udp情况,发送短消息可以正常使用,发送150+长度接收方收不到信息,下面是日志打印

你加密后的完整Protocal协议包,大约有多少字节?
签名: 《Protobuf到底比JSON快几倍?全方位实测!》http://www.52im.net/thread-4095-1-1.html
引用:JackJiang 发表于 2022-11-03 18:37
你加密后的完整Protocal协议包,大约有多少字节?

1060个字节
引用:harlan 发表于 2022-11-04 10:55
1060个字节

这样的长度,真有可能会超长。既然加密加要求高,你什么钟爱udp?
签名: 《Protobuf到底比JSON快几倍?全方位实测!》http://www.52im.net/thread-4095-1-1.html
引用:JackJiang 发表于 2022-11-04 11:18
这样的长度,真有可能会超长。既然加密加要求高,你什么钟爱udp?

我不解的是客服端到我服务端这儿都是正常的,服务器这边是可以看到消息的,发给接收方就不行了
引用:JackJiang 发表于 2022-11-04 11:18
这样的长度,真有可能会超长。既然加密加要求高,你什么钟爱udp?

我在c2c发送之前验证消息onTransferMessage4C2CBefore,消息验证失败返回false之后,客服端的返回值还是认为消息发成功了。这种情况怎么处理
引用:JackJiang 发表于 2022-11-04 11:18
这样的长度,真有可能会超长。既然加密加要求高,你什么钟爱udp?

我在onTransferMessage4C2CBefore,C2C发送之前验证消息,失败返回false之后,但是发送发客服端收到的还是消息发送成功,这种情况怎么处理
我在onTransferMessage4C2CBefore,C2C发送之前验证消息,失败返回false之后,但是发送发客服端收到的还是消息发送成功,这种情况怎么处理
我在onTransferMessage4C2CBefore,C2C发送之前验证消息,失败返回false之后,但是发送发客服端收到的还是消息发送成功,这种情况怎么处理
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部