Home

iptton edited this page Nov 25, 2013 · 3 revisions
Clone this wiki locally

如何开发

  1. 下载qtsdk ( http://qt.nokia.com/ )
  2. 用QtCreator打开Rythem.pro
  3. coding!

代码阅读提示

  1. 代码主要分为三部分:

    1. ProxyServer (代理服务, proxy目录下)
    2. UI相关 (大部分在根目录下,新创建的自定义组合在widget目录下)
    3. RuleManager (管理规则,Rule目录下)
  2. ProxyServer

    1. RyProxyServer 单例,监听host及端口(暂时硬编码)为 127.0.0.1:8889 。监听本机所有8889的http请求
    2. RyConnection 每个socket请求对应一个connection实例
    3. RyPipeData 每个http请求对应一个(根据HTTP1.1协议,每个socket可执行1到多条http请求)
    4. RyWinHttp 单例,设置windows下代理所用,里面大部分代码来自Qt源代码。
  3. UI相关

    1. Composer 产生HTTP请求的UI
    2. MainWindow 主窗口
    3. RyConnectionTableView 自定义的QTableView,用于展示请求列表
    4. RyTableModel & RyTableSortFilterProxyModel 请求列表的model部分(关于Qt的Model-View结构详见Qt相关帮助文档)
    5. WaterFallWindow 显示瀑布图
    6. widget/RyTabWidget 自定义的QTabView,接收dragMove事件,当鼠标拖动请求到tabbar时,切换tab
    7. widget/RyWebView 自定义QWebView,为RuleManager的web界面增加拖动后新建规则功能
  4. RuleManager

    1. RyRule 替换规则
    2. RyRuleGroup 规则分组 (分组可含多个规则)
    3. RyRuleProject 规则项目 (项目可含有多个分组)
    4. RyRuleReplaceContent 替换内容,当某条rule被命中时,即时产生一个此类实例,以产生其对应应被替换的内容。(单独用一类实现,是考虑到同一条rule可能会同时被多个请求命中,且本程序是多线程的,如果不单独使用,会出现错误)
    5. RyRuleManager 单例,管理规则。