概要

客服端

界面使用wxPython,需要注意以下几点

  • 输入框及文字的对齐,参考本博客文章wxPython学习记录
  • 给服务端发送用户登录信息时,注意不同输入框所输入信息之间加入特殊识别符,否则若前一输入框未输入,会把后一输入框所输入信息当成前一输入框的进行处理,即下面这一行
    con.write('login ' + str(self.magic.GetValue()) + '+' + str(self.name.GetValue()) + '\n')
  • 对将要被处理的输入信息进行字符串格式化
  • 注意登入窗口与登入后进入的聊天窗口的区别

服务端

服务端使用asyncore,需要注意以下几点

  • 对socket对象中写入的信息进行处理,根据信息的不同特征标识来调用相应的处理函数
  • 把各阶段的特征用一个房间类来描述,注意属性与方法的继承关系
  • 一个全局的ChatRoom实例,保证了所有进入房间的客服端之间的信息同步,至关重要,理解了这点也就对实现过程豁然开朗
  • 一个全局的magic变量作为进入房间的秘钥验证

参考文章:
http://www.jianshu.com/p/49750ca1589d
http://www.jianshu.com/p/79d81d2ac743
http://burningcodes.net/python网络聊天室之代码实现/

最后由 oucb 编辑于2016年05月05日 17:06