默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已解决] MobileIMSDK服务端onTransBuffer回调具体都怎么用?
阅读(39453) | 评论(4 收藏 淘帖1
现在做IM两个人单聊,还有群聊,当客户端某个用户发送一条信息过后,那server端使用哪个方法进行处理啊?
1.onTransBuffer_CallBack
2.onTransBuffer_C2C_CallBack
3.onTransBuffer_C2C_RealTimeSendFaild_CallBack

我目前是在onTransBuffer_C2C_RealTimeSendFaild_CallBack发送,客户端A发给客户端B也是可以收到的。

是不是不管是单聊,还是群聊,客户端发消息后,server都是在onTransBuffer_CallBack()方法进行sendData()再发给指定用户或指定群组内的所有用户呢?

2017/09/05 11:33 就是刚刚,我在server端上面的这三个方法把sendData代码都去掉了,客户端A发给客户端B居然也参发出和收到,奇怪。那到底客户端A发消息给客户端B,当客户端A发一条消息后,server端是要在上面三个方法中进行sendData到客户端B吗?

同样,客户端C发消息给群X,那么客户端C发出一条消息后,需要在上面3个方法中调用sendData再把消息转发给各个用户吗?

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

标签:MobileIMSDK
上一篇:[已回复] 关于MobileIMSDK的socket使用udp协议的一些疑问下一篇:[已解决] 基于MobileIMSDK写IM之添加好友功能实现的疑问

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

推荐方案
评论 4
你的理解可能不太准确,其实我在API文档或精篇注释版代码的注释里说明的很详细了。
我分别就上面的回调来回复你:

1.服务端的onTransBuffer_CallBack回调:
当客户端向接收者为“0”的用户发送数据时,服务端会在此回调中会收到。实际是MobileIMSDK里约定user_id为“0”的用户就是“服务端”。所以本回调中通常用于客户端需要向服务端发送数据、消息、指令时使用。

2.服务端onTransBuffer_C2C_CallBack回调:
本回调中通常不需要开发者单独处理什么,服务端对用户与用户间的所有消息转发都会调用一次本回调,本回调的作用可用来记录用户的聊天记录(虽然很多APP强调不收集用户的隐私,但几乎市面上的所有IM都会收集,那么MobileIMSDK里可在此回调中干这种事。不过,建议不要在本回调中放入过多耗时操作,因为一对一的聊天消息毫无疑问是一个IM里量最大的交互之一,此处的耗时操作肯定会导致您整个服务端实时通信通道的性能的降低。)。

3.服务端的onTransBuffer_C2C_RealTimeSendFaild_CallBack回调:
MobileIMSDK中一旦没有实时发送成功的消息,一定会进到本回调中,对于MobileIMSDK而言,发送消息:要么实时送达、要么实时未送达(就到了本回调中了),从而保证不出现莫名其妙的“消息失踪”(JackJiang称为“消息黑洞”)。那么,服务端的离线消息存储就在本回调中实现,就是最佳实践了。
引用:JackJiang 发表于 2017-09-05 11:38
你的理解可能不太准确,其实我在API文档或精篇注释版代码的注释里说明的很详细了。
我分别就上面的回调来 ...

注释我也看了,意思和你刚刚说的是一样的。
那如果是单聊的话服务端就不用处理了,但如果是群组呢?群组server端应该还是要sendData到组内所有用户的吧?这个业务是在onTransBuffer_CallBack中处理吗?
引用:dzl2005328 发表于 2017-09-05 11:42
注释我也看了,意思和你刚刚说的是一样的。
那如果是单聊的话服务端就不用处理了,但如果是群组呢?群组 ...

是的,你理解的没错。
引用:JackJiang 发表于 2017-09-05 11:49
是的,你理解的没错。

明白,谢谢大神了
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部