2011.3月工作总结

目前弄一个网页即时聊天的东西,现有的网站本来有,要弄到新网站上,要改好多东西。总算从头到尾把整个流程搞清楚了。

用户:发送消息,js即时显示它在聊天框,ajax发送此消息给php处理,php插入消息并且查询客服的最新的一条消息,把客服的消息等信息以json形式返回给js,ajax调用完成complete后再次发起此同样的请求,成功success后在聊天框显示客服的消息,错误error在聊天框显示发送失败。

客服端一样。

大厅表hall 表,记录客服和用户的id,ip,客服的状态等

房间表room_x(可以分多个表,根据用户id或者啥的),记录聊天开始时间,结束时间,有效时间客服打开窗口产生记录,sid等

聊天横向记录表 consultlist  (分表或者定时向其他多个分表复制)主键sid ,记录一对一的一次聊天的信息

临时聊天信息表 info_x 临时存储聊天内容(分10个表,按sid%10取余),结束咨询时转移到consultinfo_x中

聊天信息表 consultinfo_x(数据量特大,需要分表),sid,消息内容,发送时间

 

可以用个js数组记录上一次返回的信息,如response,本次返回的为json。

response.sid<1 && json.sid>0 认为有用户进入,可以在此发送欢迎语什么的!

response.sid>0 && json.sid<1 咨询已结束

另外客服的每次轮询处理,都更新它最后的活跃时间,可以记录在memcache中,可以根据这个时间比当前时间小20秒(假如为20秒,传输信息一般要不了这么长时间)判断客服是否关闭了窗口。

另外用memcache记录两段最后说话时间,一方超时5分钟,提示用户,时间到了,结束操作,日志记录!

 

客服端打开窗口等待用户进入时,hall表产生一条记录id,ip,status等,room_x产生一条记录id等

用户进入:consultlist产生记录产生sid,hall表填充用户数据,room表填充用户数据、保存sid、记录开始时间等

聊天时:不断更新room表记录,如有效时间

结束操作:将room表的信息转移给consultlist表,room表信息清空,hall表清空用户数据继续等待,info表数据转移到consultinfo_x,info_x表清空。

此条目发表在 工作总结 分类目录,贴了 , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>