默认
发表评论 15
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
一句话描述一下:你这是打算为用户实现什么功能?
评论 15
引用:cotide 发表于 2019-09-26 12:36
我想用于标识消息已经发送出去并对方成功接收(消息已被客户端B接收)。
## 场景
1. 客户端A发出消息 ...

这个在MobileIMSDK是现成的,已经实现了完整的逻辑。

对于A端来说,收到了B端对于这条消息的ACK应答,就表示对方肯定收到了,这是最严谨和有效的方法。

你去看一下Android端的官方Demo里,MessageQoSEvent  这个接口的实现类,对方收到的消息,和超时重传后还无法送达的消息,都会通过这个接口的实现类告诉你,你就可以在这个类里去实现关闭你的转动的菊花(表示消息已送达),或者显示一红色小图标(表示消息未送达)
引用:cotide 发表于 2019-09-26 14:42
客户端(A)通过http发送消息让服务端去进行消息转发给客户端(B),如果这种情况MessageQoSEvent 应该是在 ...

你客户端A是通过http发送给客户端B?这是怎么玩出来的?

把客户A的发送代码、服务端的代发代码,贴出来,我看看你是怎么玩的
引用:cotide 发表于 2019-09-26 15:24
客户端A是通过http发送给服务端,进行转发到客户端B。客户端B的ACK应答码应该是返回给服务端的吧?
所以 ...

如果你要在服务端知道,收服务端主动发起的消息有没有送达给对方,你可以看下官方Demo里服务端的这个实现类:
[已回复] 求助MobileIMSDK中,客户端A发送消息给客户端B,怎么知道对方是否收到?_WX20190926-165957@2x.png

它的原理,跟客户是一样的,对应的接口是:MessageQoSEventListenerS2C

你研究一下。
引用:cotide 发表于 2019-09-26 17:26
我现在是用上面示例的代码,只有服务端触发MessageQoSEventListenerS2C的事件,而安卓端没触发。不知道能 ...

客户端A肯定再没法直接知道这条消息的发送状啊,因为长连接消息不是它发出的,要想让它知道,你服务端得单独给他下一条你的自定义指令,这个看你逻辑怎么实现。

不过,看你这功能定义,挺操蛋的,为什么不能直接A通过长连接发送呢
引用:cotide 发表于 2019-09-26 21:32
1.其实客户端A登陆的时候,是将长连接信息放在服务端缓存。

2.客户端A发送报文信息给服务端,里面定 ...

你这说的乱七八糟,没看懂。

回根到事情的本质:你直接把你要做的功能,用一句话描述出来,要让煞笔也能理解的方式。别说具体技术细节,煞笔不懂这些
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部