资源描述:
《chatlogs插件开发总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、ChatLogs插件开发总结一、需求针对web客户端的用户,如果是长期联系的用户,则需要将他与客服的聊天记录保存到数据库中。当其需要查看他与客服的聊天信息时,可很方便的获取。当删除用户是,将他的聊天信息也一起删除。如果用户的聊天记录大于一定时间(如:一个月),需要将此用户指定时间之前的聊天信息删除,前提是此用户还存在。二、功能描述添加聊天记录:客户端发送的信息是以XML包的形式发送的,服务器会自动监听此文件包。服务器段获取到客户的信息包后,对其进行解析(解析出来的信息就是客户发送的具体信息)。然后,将信息保存到数据库中。获取聊天记录:当客户需要获取聊天记录时,会
2、发送一个请求到服务器端(此请求包含了用户名和一个时间点)。服务器接收到请求后,根据此用户名和时间,查询此用户在此时间点之前的最新的十条聊天信息。删除聊天记录:有两种情况会删除聊天记录:一种是:删除用户时,将其聊天记录一同删除;第二中是:定时删除用户聊天记录,通过一个定时器完成定时操作。三、sql语句创建聊天记录表:DROPTABLEIFEXISTSofchatlogs;CREATETABLEofchatlogs(MESSAGEIDint(11)NOTNULLauto_increment,SESSIONJIDvarchar(80)defaultNULL,SENDE
3、Rvarchar(80)defaultNULL,RECEIVERvarchar(80)defaultNULL,CREATEDATEvarchar(30)defaultNULL,LENGTHint(11)defaultNULL,CONTENTvarchar(2000)defaultNULL,DETAILvarchar(4000)defaultNULL,STATEint(11)defaultNULL,PRIMARYKEY(MESSAGEID),KEYsenderPK(SENDER),CONSTRAINTsenderPKFOREIGNKEY(SENDER)REFERE
4、NCESofuser(username))ENGINE=InnoDBDEFAULTCHARSET=utf8;添加聊天记录:INSERTINTOofChatLogs(sessionJID,sender,receiver,createDate,length,content,detail,state)VALUES(?,?,?,?,?,?,?,?)获取聊天记录:SELECTsender,receiver,createDate,contentFROMofChatLogswherestate=0and(sender=?orreceiver=?)andcreateDate
5、ORDERBYcreateDateDESCLIMIT10删除聊天记录:根据用户删除的聊天记录:DELETEfromofchatlogswheresender=?定时删除用户的聊天记录:DELETEfromofchatlogswhere(UNIX_TIMESTAMP(SYSDATE())-createDate/1000)/(24*60*60)>30四、Plugin.xml文件org.jivesoftware.openfi
6、re.plugin.ChatLogsPluginchatlogschatlogsinsert,delete,selectandsoon.WangluShen1.0.029/6/20133.8.2gpl7、nseType>五、编写自己的数据交互类,插件类,计时器类以及所需的工具类。数据交互类:DbChatLogsManager.Java,一些数据库操作的方法。插件类:ChatLogsPlugin.java,该类实现了PacketInterceptor.java接口类,这个借口可实现监听用户发送的信息。通过实现该接口的interceptPacket方法,获取用户的聊天信息数据包。计时器类:ChatLogsDelTimer.java,实现定时
8、删除用户聊天记录的功能。