默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求助关于MobileIMSDK消息id和消息回调的疑问
1.  我看了一下代码, MessageQoSEventListenerS2C 的 messagesBeReceived方法 只有一个参数是fp,
  我想在客户端收到消息后,把消息id存到 数据库里,是不是的改造一下方法才行? 还是有其他方法


  我看 QoS4SendDaemonRoot 可以根据指纹删除 Protocal,增加一个Get方法是否可行?


2. fp与消息的ID有什么关系么,从客户端发出的消息到了服务器端会被分配唯一的fp么?这个fp可以用于标记消息,从而达到离线消息拉取,页面顺序展示么?如果可以的话 有没有接口可以自定义fp的?

3. 如何才能拦截到 c2s的消息?

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

标签:MobileIMSDK
上一篇:[已回复] MobileIMSDK的java和安卓有规律地自动断开的疑问下一篇:[已回复] 关于MobileIMSDK中Protocal只有 dataContent 一个数据字段

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

推荐方案
评论 6
我逐个回复你:
1)你对服务端的这个理解是不对的,服务端的MessageQoSEventListenerS2C跟客户端的qos回调是一样的意思:指的是服务端主动发出的消息的应答事件。不是你理解的意思。

你是希望将用户发给其它用户的消息的id都记到数据库里,用于作聊天消息或用户行为记录是吗?

2)fp是指fingerprint,就是指纹的意思,就相当于消息id,我当时突发其想用的名字而已。这个fp现在在MobileIMSDK里是都是UUID(有可能是客户端生成、也可能是服务端生成,不存在服务端分配,服务端也没办法分配),所以理论上肯定是唯一的,也就是为什么叫它指纹码的意思了。你自已可以把它改成任意能保证唯一性的id都可以, 不会有什么问题,因为它就是个为了保证唯一性的id而已。
引用:JackJiang 发表于 2017-07-19 16:03
我逐个回复你:
1)你对服务端的这个理解是不对的,服务端的MessageQoSEventListenerS2C跟客户端的qos回调 ...

1. 是的.我要做的都是群组消息,所以消息需要c2s,我希望得到消息后 先能记录消息入库,然后s2c 当客户端ack后,把msgid入库到每个人的数据上(根据您写的文章,保证离线消息)

2. 能告诉下,在哪个位置调整吗?

3. 我增加了一个问题3
1)消息id的生成,java、android和服务端都是Protocal.genFingerPrint()生成的。
ios下也同样是Protocal.m里生成,方法名一样,你也可以去看看。

2)c2s消息可以在服务端的ServerEventListener. onTransBuffer_CallBack回调里就可以收的到。
引用:JackJiang 发表于 2017-07-19 16:17
1)消息id的生成,java、android和服务端都是Protocal.genFingerPrint()生成的。
ios下也同样是Protocal.m ...

这俩问题明白了。。

还有我刚开始的问题 MessageQoSEventListenerS2C中的 messagesBeReceived 只有一个 fp参数,无法知道消息来源,内容等等。。 这个只能通过改造源代码实现么
引用:冯贺亮_rIqIT 发表于 2017-07-19 16:23
这俩问题明白了。。

还有我刚开始的问题 MessageQoSEventListenerS2C中的 messagesBeReceived 只有一 ...

你自已想办法存储一下,MobileIMSDK不能为你决定该存什么、以及怎么存
感谢回复`·
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部