近期在维护一个平台,平台原开发都已不在,只有源码和一些文档,据说源码还不是最新的,可能还有一些问题。老板想让平台尽快运作起来。
客服聊天功能恢复是最紧急的,这花了我近两周多的时间(过了十一),过程也很痛苦。记下来,给以后的自己提个醒。
现有情况是,客服和客人只能看见自己的话,看不到对方的,无法进行交流。
1. 首先了解客服实现方式。首先猜想是调了一个聊天工具,结果否。又猜想把聊天记录到数据库,定时从数据库取数据,结果否。从页面的URL追踪到相关的PHP代码,发现聊天是基于 Cache。把相关两个人的聊天记录到一对相关的 cache 中,再每五秒种从 cache 中取数据并显示。
2. 确认 cache 是否可用。用的是 memcache, telnet 进去发现可用。但是客服给客人发的 cache 消息总是找不到。猜想要么是 cache 的 key 不正确,要么是 cache 数据格式不对,无法被前端识别。应该分别对这两个可能进行验证。
3. 查看两份 config 档,没问题。
4. 在客服给客人发消息的PHP文档中写了很多设置 cache 点,却取不出一个 cache 数据。
5. 再次翻看 config 档的过程中,发现在后台的 index.php 文档中,将 cache 设置为 file 存储。修改为 memcache 方式。
至此,此问题解决。
虽然只改动了几个字解决了这个问题,却花费了我很长的时间,想了很多问题。尤其是搞明白 1,2 两点,花了绝大部分的时间。中间走了很多弯路,但至此对整个框架的结构有了清楚的认识,再去解决其他问题就简单多了。
最痛苦的时候就是快成功的时候,解决这个问题的前一个晚上加了上班以来最长的加班。然而并没有什么结果,在回家的路上冷静分析了一下,走通了 2 ,第二天,剩下的步骤很快通过。
给认真的我。