默认
发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
你代码怎么写的,最好能贴出来。
评论 9
是ServerEventListener.onTransBuffer_C2C_RealTimeSendFaild_CallBack 回调吗?
http://docs.52im.net/extend/docs ... eSendFaild_CallBack(int, int, java.lang.String, java.lang.String)
我大概能猜到你的疑问在哪了,请先贴你的代码哦。
引用:hejiacheng2016 发表于 2016-03-24 04:50
[mw_shl_code=actionscript3,true]@Override
        public boolean onTransBuffer_C2C_RealTimeSendFaild_Cal ...

跟我猜的一样!

你仔细看清楚api文档的说明哦,此回调方法返回false则意味着服务端没有处理离线,那么客户端的QoS机制感知到消息未被送达,进而自动开启3次重传,加上发送的那1次,一共就是4次了,所以你在服务端的这个回调里看到的就是4次。

正确的作法是,如果你在此回调里正确地处理了离线消息,返回true即可,不信你试试。
引用:hahacheng 发表于 2016-04-22 14:18
返回true怎么还是执行3次了

你要是怀疑真的返回true的情况下还会被执行3次,我建议你做一个检单的测试:把这个方法无条件返回true,看看回调是怎么表现!

我看到你这个回调里tray catch里 exception时会返回false,所以请排除你代码的问题,不然你会把简单的事情复杂化!
引用:往事随风 发表于 2019-06-28 16:57
都返回true但是还是回调了多次

这个回调,只要你返回true,客户端就只会发送一次,如果是false,重传逻辑就会继续(大约3次重传)。

具体看API文档的说明:点此查看
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部