新手问题 怎么设计聊天系统?

cqcn1991 · 2015年11月04日 · 最后由 cqcn1991 回复于 2015年11月06日 · 3104 次阅读

比如一般 App 内部需要的私信功能,用户可以和另一个用户私聊

不知道应该怎么设计?有什么可以参考吗?

如果我是来的话: 发起聊天之后,先给两个用户之间,创建一个唯一的chat, 然后chat has_many message,每个 message 确定作者是谁

还有另外一个思路,就是设计成邮件的形式,每个 message 有一个接收方有一个发出方

然后前端,可能是需要用 angular JS 之类来做绑定?

私信的话,可以参考 has_messages 这个 Gem 的数据结构

#1 楼 @huacnlee 居然还有这个 gem...我以前从来没搜到过 原来是....https://github.com/huacnlee/has_messages

如有需要 去看看 阿里悟空 吧

我直接来的

message:
  from: from user id
  to: to user id
  msg: msg body
  unread: true/false

#4 楼 @flowerwrong 这样的话,在聊天的 index 下面(比如),应该怎么查询? 比如这种,这样的话,是对 messages 做 uniq 和最新的?

#5 楼 @cqcn1991 这种更像是无限极评论。我的那个是类似微信聊天的设计。参考 acts_as_commentable_with_threading 上面那种好一点。

try elixir's phoenix

#6 楼 @flowerwrong 额,就是问的微信聊天的设计,也是有一个每个人之间的对话嘛~ 怎么显示最新的和各个人的对话列表?(因为显然 user.message.all 不行嘛,因为很多信息是来自同一个用户)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号