代码:https://github.com/xiarendeniao/recorder/tree/master
出发点:
1.充当client和server之间的proxy,做数据转发
2.提供console接入,由console输入命令:开始刻录、停止刻录、显示刻录的区段、选择性的回放刻录区段
3.刻录功能:把client的数据加上时间戳写盘
4.回放功能:根据选择把某个区段的刻录数据按照原始的时间间隔发送给server
设计:
用twisted做网络数据处理;
监听一个控制端口,待用户连进来之后发送命令提示并接受输入;
启动代理后监听一个端口接收游戏终端连接;
游戏终端连接建立起来之后为该终端向游戏服务器建立一个连接并做两者之间的数据转发;
收到刻录命令时,把游戏终端发往游戏服务器的数据包全部写盘;
收到回放命令时,把写盘的网络数据重发给游戏服务器。
为了防止运动的数据包被判定为非法,最好在回放刻录区段的时候把角色拉回刻录开始时的位置。比如,每次刻录和回放都把角色放在某个副本的初始位置上就挺好。
做到现在这个程度之后没有灵感了,不知道该做成什么样子才真的实用。
纠结了一会决定暂且搁置免得浪费时间,等以后用得上这点代码或者有在进一步开发想法的时候再折腾。
【2015.6.18】好吧,上面那些确实没什么鸟用。用twisted写得比较好的程序是机器人了。这里是个demo:https://github.com/xiarendeniao/robot