既然是想要历史消息,那么肯定会想到将消息存储起来。存储数据有服务端的mysql等,也有本地的indexedDB,websql,localStorage,cookie,session等。使用场景,可能是app,也可能是web。这个时候就需要去衡量用那个了。

如果不是对消息非常重视,安全,消息查看等,就先丢掉服务端mysql等。h5推崇使用indexedDB,可是indexedDB的兼容性问题比较大,支持度不是很广。localStorage,cookie等,这些存储些简单,小的数据还行,存储聊天等大量,有一定结构的数据,就不方便了。这里,因为app需要,我用了websql。websql虽然对平台支持也不全,可已相当可观了。其语句,也类似mysql。比较好理解。

先看一个东东。sqlite_master

再看一个东东。删除所有表。
1,先select,获取所有表的表名。
S E L E C T name F R O M sqlite_master W H E R E type=’table’ O R D E R B Y name

2, 删除表。D R O P TABLE test

最后看一个东东。怎么创建数据库,打开,操作增删改查。http://www.jb51.net/html5/431355.html

看完这些。自己建库建表,可以干活了。

最后,为了方便显示最近消息。可以创建一个总表,用来存储聊天对象的引用。因为聊天,除了群聊,还有一对一聊天。你可以一对一,群聊都整在一起。可是这样有点乱也不好看。可以像qq,微信等。单聊和群聊都分窗口。步骤:

1,消息来了。建一个表,存储该对象的消息。可能是单一聊天,也可能是群聊。单一聊天,可用对方的uid加自己的uid加特定字符组成一个表(创建它)。如果是群,可以用群的uid+特定字符串组成一个表(创建它))
2, 建立一个总表,存储上边表的表名,还有一些简要的聊天信息。比如发送消息人的uid,最后一次发的消息等。
3,通过对应关系。在适当的时候取出来。渲染出来。算是基本完成了。