默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
是的,你这个问题,好多人在设计这一块时有点蒙逼,要么是会搞复杂,要么是觉得不优雅。

我给你个参考,以 RainbowChat IM产品中的实现为例:

不管是单聊还是群聊,只需要3个关键字段,就可以实现你要的逻辑:

  • 1)字段1:“from”字段,表示是谁发的;
  • 2)字段2:“to”字段,表示的是要发给谁?(发给个人时这个字段放入的是用户的uid、发给群聊时这个字段放的是群id);
  • 3)字段3:“chatType”字段,比如为0时表示是单聊、为1时表示群聊(不同的值时,对应的“to”字段内容就不同)。

以上这3个字段,就能解决你的困惑,你仔细体会一下,不需要搞复杂。

这样的设计,无论是实现服务端的全量消息记录还是增量离线记录,群聊和单聊都不需要各自不同的逻辑,代码都可以重用起来,实现起来很优雅。
评论 6
引用:fanhua1994 发表于 2020-07-13 15:10
如果能拿到群聊ID  发送人用户名怎么拿   应该还需要一个字段吗

不涉及主体的辅助字段,就按需去加了
引用:fanhua1994 发表于 2020-07-13 15:10
如果能拿到群聊ID  发送人用户名怎么拿   应该还需要一个字段吗

“to”里填的就是群id啊哥
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部