一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻烦的是前端展..于是..
需求分析
要实现功能,首先要做前端,经过对比其他网站的在线聊天功能,发现除了基本的聊天功能以外,还要注意以下几点.
1.一次只能和一个人聊天,但是可以随意切换其他人. 2.如果用户是从"发送消息" 入口进来的,那么当前马上就切换到对应的聊天窗口,而且如果之前有过聊天记录,应该把聊天记录也展示出来. 3.如果是从"我的消息" 入口进来的,那么应该不显示任何聊天记录.等待选择聊天对象. 4."我"发送的消息显示在右边,"对方"发送的消息显示在左边,也可以相反,总之要不一样. 5.切换聊天的时候不能刷新整个页面,否则体验很差. 发送消息也同理,所以应该用ajax. 6.要保证在线聊天的及时性,应该每隔一段很短的时间,就要与服务端通信,也就是说要轮询ajax.123456
前端页面
经过简单的需求分析,然后又找了找其他的网站,对比了一下功能在界面的展示,最终确定界面. 然后花了几个小时做好了.
成品
这是最终全部做完(包括后端) 的效果.
点击左侧可以切换,下方多行文本框,输入聊天信息,然后点击发送.
整个流程大概就是这样.
数据库
回头来看需求, 很明显,首先要有一张表格,存放双方的对话,想了想决定这样定义字段:
主要是这两个字段:
user_id 表示消息发送的主体
chat_user 表示消息接收的主题
这样定义的好处是