默认
发表评论 17
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSDK实现讨论组或者群聊的思路如何实现?
阅读(68679) | 评论(17 收藏2 淘帖1 1
我们这里有多个UserId,A,B,C,D,然后有一个讨论组这个讨论组我们暂定为IM,如果是单聊的话,就是A与B的聊天,群聊的话,我们制定IM为特定的UserID,我们通过A对IM,B对IM,C对IM,D对IM,统一放在一个页面进行共享聊天,是不是这样

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

标签:MobileIMSDK
上一篇:[已回复] MobileIMSDK是如何管理UserID的?下一篇:[已回复] 关于MobileIMSDK重新登录时机的判定疑问

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

推荐方案
评论 17
你说的是针对MobileIMSDK即时通讯框架吗?
引用:JackJiang 发表于 2016-04-21 18:02
你说的是针对MobileIMSDK即时通讯框架吗?

是的,对于这个框架,延伸出讨论组这个功能的逻辑
签名: 17 小时前 (Lv9)以坛为家II
引用:JackJiang 发表于 2016-04-21 18:02
你说的是针对MobileIMSDK即时通讯框架吗?

传资料,图片,语音聊天,差不多,我之前说过那种思路了,我现在延伸出的是群组的思路
签名: 17 小时前 (Lv9)以坛为家II
先抛开性能不讲。群组的实现并不难。

首先可以确定的是,从服务端端向指定的一组用户发送消息,就相当于循环逐一向每一个人发送,一个循环而已。这解决了群组中的“发送”问题。

其次群组需要确定的是“向谁发送”?这也不难,通过应用层建立好群组,相应的用户加入群组,那么某个用户属于“哪个群组”就是个直观的问题了。当用户向它所属群组发送消息时,根据群组Id找到他所有群组的人员,就解决了“向谁发送”的问题了。如果用户量大,可以使用诸如radis这种缓存框架(当然,这只是建议,具体如何实现灵活性在开发者手上),在用户上下线时,将用户列表用这样的框架维护起来,则遍历查找用户的user_id的性能问题也可以很好地解决了。

至于群发性能,这就处理起来就有更多的灵活性了,如果需要快速完成功能原型,可以先简单地利用java线程池,保守实现之。
引用:JackJiang 发表于 2016-04-21 21:27
先抛开性能不讲。群组的实现并不难。

首先可以确定的是,从服务端端向指定的一组用户发送消息,就相当于 ...

用你这个imsdk实现群聊怎么实现比较好点
引用:hahacheng 发表于 2016-05-04 09:26
用你这个imsdk实现群聊怎么实现比较好点

我在5楼已经回复了我的建议
引用:JackJiang 发表于 2016-05-04 09:51
我在5楼已经回复了我的建议

你说的线程池,是不是将发给每个人的任务放入这里
引用:hahacheng 发表于 2016-05-04 10:02
你说的线程池,是不是将发给每个人的任务放入这里

解决服务端端性能的方法有很多,用线程池只是最懒的方法,目的是确保不阻塞主业务线程而已。你如果有架构经验,这些东西可以提前构思好,如果没有太多积累,可以别做边研究,可以作为持续优化工作来做。
引用:JackJiang 发表于 2016-04-21 21:27
先抛开性能不讲。群组的实现并不难。

首先可以确定的是,从服务端端向指定的一组用户发送消息,就相当于 ...

比如群里有A、B、C三人,A发送一条群消息。
按你这个思路,应该是A向IM server发送了一条消息,IM server 扩散给B和C。当B和C都向IMserver发送收到请求后,IMserver再向A发送确认回执?
如果只有B收到了、C的需要重发,这个重发操作就应该是IM Server做的,而不是A处理的。
引用:沙子 发表于 2016-05-11 14:49
比如群里有A、B、C三人,A发送一条群消息。
按你这个思路,应该是A向IM server发送了一条消息,IM serve ...

如果群聊需要重传,肯定需要Server来实现相关逻辑,而不能像一对一消息一样由发送方决定是否要重传。
值得看看
引用:JackJiang 发表于 2016-04-21 21:27
先抛开性能不讲。群组的实现并不难。

首先可以确定的是,从服务端端向指定的一组用户发送消息,就相当于 ...

MobileIMSDK里面发送群组消息的话那么聊天对象的Id就是群组的ID,我想的是服务端可以用G开头的字符串来作为群组ID然后个人ID可以用P开头的字符串,这样服务端就可以区分客服端发来的消息是针对个人的还是群组的了,不知道这个想法怎么样?或者您这边还有更好一点的方案来参考一下吗?
签名: 生如夏花般绚烂
引用:Ahaoplus 发表于 2016-08-17 16:05
MobileIMSDK里面发送群组消息的话那么聊天对象的Id就是群组的ID,我想的是服务端可以用G开头的字符串来作 ...

你可以简单把MobileIMSDK看成是一个消息通道,只是它帮你屏蔽了这个通道的各种网络和算法复杂性,至于你要发给谁、怎么发,完全可以发挥一下,很简单
引用:JackJiang 发表于 2016-08-17 16:09
你可以简单把MobileIMSDK看成是一个消息通道,只是它帮你屏蔽了这个通道的各种网络和算法复杂性,至于你 ...

嗯,我也是这样想的,但是不知道服务端在处理离线消息的时候是怎样的方案?
签名: 生如夏花般绚烂
引用:Ahaoplus 发表于 2016-08-17 16:13
嗯,我也是这样想的,但是不知道服务端在处理离线消息的时候是怎样的方案?

你另开发贴,把你的问题汇总一下
引用:JackJiang 发表于 2016-08-17 16:25
你另开发贴,把你的问题汇总一下

我发了一个帖子,是暂时遇到的一些问题。http://www.52im.net/thread-491-1-1.html
签名: 生如夏花般绚烂
引用:JackJiang 发表于 2016-05-11 16:18
如果群聊需要重传,肯定需要Server来实现相关逻辑,而不能像一对一消息一样由发送方决定是否要重传。

群聊的重传有server来实现
一对一消息由发送方决定是否重传
mark一下。
签名: now start 。。。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部