默认
发表评论 1
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 通过MobileIMSDK4j客户端向rainbowchat服务端发送长消息异常
阅读(34607) | 评论(1 收藏 淘帖1
pc上的基于MobileIMSDK4j的客户端,调用客户端接口:
sendCommonData(msg, friendId, true, Protocal.genFingerPrint(), MessagesType.MT03_OF_CHATTING_MESSAGE);
向服务端发送消息,消息长度1200字节。 发现rainbowchat服务端抛出异常:

[WARN] - [17:25:25.704]异常发生在执行SQL: [INSERT INTO missu_user_msgs_collect(src_uid,dest_uid        ,chat_type,msg_type,msg_content,online_count,msg_time) VALUES(?,?,?,?,?,?,now())] , VALUES: [[400077, 400098, 0, 0, aaa...(省去消息), 2]] | (DBShell^update:526)
[ERROR] - [17:25:25.707]UserMsgsCollectHelper | (UserMsgsCollectHelper^colectMsg:67)
Data truncation: Data too long for column 'msg_content' at row 1
        at com.eva.epc.db.util.DBUtils.getErrorMessage(DBUtils.java:95)


查看数据库,发现该表的msg_content字段只有1000的长度,我的问题是设置为1000是为了限制发消息的长度吗?为什么要限制呢?

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

标签:MobileIMSDK
上一篇:[已回复] MobileIMSDK 数据通信的协议怎么改成对 Protobuf 的支持?下一篇:[已解决] 求助MobileIMSDK连接rabbitmq报错问题

本帖已收录至以下技术专辑

推荐方案
评论 1
MobileIMSDK是基于UDP实现的,因为UDP是基于“包”的概念,所以长度肯定不是无限的。

具体的解决思想,你可以看看这个帖子里的讨论:
[已回复] MobileIMSDK的消息有大小限制吗?

有关UDP包大小的理论,你可以参考以下两篇文章:
UDP中一个包的大小最大能多大
不为人知的网络编程(六):深入地理解UDP协议并用好它
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部