默认
发表评论 1
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSDK的sendData发送数据不完整的问题?
阅读(36731) | 评论(1 收藏 淘帖
请问,在LocalSendHelper.java中的sendData函数,如下:
public static void sendData(final Channel session
                    , final Protocal p, final MBObserver resultObserver) throws Exception
    {
            // 要发送的目标用户的session已经不存在了
                if(session == null)
                {
                        logger.info("[IMCORE-netty]toSession==null >> id="+p.getFrom()+"的用户尝试发给客户端"+p.getTo()
                                        +"的消息:str="+p.getDataContent()+"因接收方的id已不在线,此次实时发送没有继续(此消息应考虑作离线处理哦).");
                }
                else
                {
                        // 要发送到的对方会话是正常状态
                        if(session.isActive())
                        {
                            if(p != null)
                            {
                                    final byte[] res = p.toBytes();
                                    
//                                    IoBuffer buf = IoBuffer.wrap(res);  
//                                    // 向客户端写数据
//                                    WriteFuture future = session.write(buf);  
//                                    // 在100毫秒超时间内等待写完成
//                                    future.awaitUninterruptibly(100);
                                    
                                    ByteBuf to = Unpooled.copiedBuffer(res);
                                    ChannelFuture cf = session.writeAndFlush(to);//.sync();

======================================
问题:当我有多个好友列表的时候,需要查询好友信息后,实际上通过这个函数,发回客户端,Unpooled.copiedBuffer(res);导致数据不能拷贝完整?
所有的好友信息查询出来了,但只接受到了部分数据,这种情况需要调用多次sendData吗?每次发送多少个字节?
                                    

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

标签:MobileIMSDK
上一篇:[已回复] 求助MobileIMSDK的android 客户端 jdk1.8版本编译error下一篇:[已回复] 求教使用MobileIMSDK服务端定时对不同的组推送不同的消息
推荐方案
评论 1
首先,UDP的传输单个包肯定是有长度限制的,请见下贴中的回复:
[已回复] MobileIMSDK发送消息的最大字节数是多少?超了会出现什么情况?

其次,你这种方法并不是现在移动端IM的主流方式和最佳实践:
你这个需求,完全可以通过服务端开放http接口,通过客户端“拉”的方式更合理、更优雅,而不是你这种“推”的方式。
具体理论,请参见如下文章:
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部