
Easy Talk 2009
经过了几天挣扎,EASY TALK算是有了突破性的进步。服务端方面目前用户线程80%接口函数都写得差不多了,所以后期的服务器工作量会减少许多,因为只需对用户请求进行函数响应返回,基本上就是一些函数的重新组成了。而客户端方面,也就是Rock所负责的70%的框架也已经成形了,函数也是相当得多,最后还是要封装动态链接库的,那样减少主程序的代码量。
客户端与服务器端连接正常,多客户之间消息发送经由服务器转发,一方面减少客户端与服务器端代码编写,简化工作,另一方面通过始终都连接的TCP,而不会发生使用UDP出现的丢包现象。再者,已经实现离线消息的数据库副本保存,当用户上线后将能收到所有离线未收到的消息。
客户端开发过程中遇到一些棘手的问题,其中包括选择定时器的时候是否使用函数指针,如何向定时器传参数,树控件各结点与好友信息链表的获取与匹配,判断聊天对话框与信息查看对话框创建状态从而选择是头像闪动还是消息直接转移对应对话框的控件,以及各非模态窗口的消息投递。前面几个问题最后决定在好友链表的结构体里分别添加成员变量,分别用以保存定时器事件ID,孩子结点的HTERRITEM句柄,对话框的窗口句柄。一方面可以简化很多操作,一方面给以后的功能扩展铺好基石。

