默认
发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复]求教RainbowChat的android端自定义发送消息的问题
在IM登陆服务器重连成功后:我在个人聊天,通过MessageHelper.sendChatMessageExtend发送消息,返回结果是0,然后对方收到了,但是messagesLost这个方法提示丢包,说这个消息没有发送出去,怎么回事?

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

标签:RainbowChat
上一篇:[已回复] 求教同一账号、不同设备、同时登陆强制下线的优化方法下一篇:RainbowChat[专业版] 的v4.5版已发布!
推荐方案
评论 9
MessageHelper.sendChatMessageExtend(activity, currentChattingUser.getUser_uid(), msgBody, fingerPring);

/**
     * 发送聊天消息(包括普通文本、图片消息、语音留言消息等)给指定user_id的用户.
     * <b>注意:</b>目前普通文本消息为了提升用户体验,提供QoS支持.
     * <p>
     * 说明:安卓2.3及以后系统中规定:发送网络数据须在单独的线程中,本方法默认没有为开发
     * 者提供异步实现,所以开发者调用时需单独在代码中使用AsyncTask包装一遍哦。
     * </p>
     *
     * @param context
     * @param user_id 当user_id=0时表示发送给服务器,否则发送给指定用户
     * @param message 要发送的文本消息
     * @param fingerPrint 指纹码
     * @return
     */
    public static int sendChatMessageExtend(Context context, String user_id, MsgBodyRoot message, String fingerPrint) {
        return SendDataHelper.sendMessageImpl(context, user_id
                , new Gson().toJson(message)
                , true, fingerPrint
                , UserProtocalsType.MT03_OF_CHATTING_MESSAGE); // 普通一对一聊天消息的报文头(聊天消息可能是:文本、图片、语音留言、礼物等)
    }


都是demo的代码来的
这个代码我都没有都重写过,直接调用demo过来的。
String fingerPring = Protocal.genFingerPrint();

这样生成。


这样说吧:我是基于demo上开发,发送信息接收消息这些代码,我没有改动过。当在消息列表出现
就是重连,然后通过发消息给对方,对方收到了,但是messagesLost这个方法提示丢包,对方发消息给我时,我就没有收到任何消息,显示发送失败。就是在显示网络出错时,A发送信息给B,B收到,但是B发消息给A,发送不成功,A收不到。

微信图片_20190624113019.png (4.08 KB, 下载次数: 1551)

微信图片_20190624113019.png
不能拿demo来测试丢包情况,现在这个项目后台进行一些修改。
MessageQoSListener监听原因,什么情况返回丢包?有这个方面的资料不?
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部