Sproto
2 篇sproto 添加版本号
明明需求都做完了,硬要拉着人家去公司加班,真是变态 ToT 最近想推动一下协议版本号的事,版本号不一致的禁止登录。理论上,只要改了某条协议的定义,而客户端因为各种原因没有更新到协议文件,就有可能导致协议解析出错,服务器拿到异常数据。因为 sproto 的定义是放在 spb 文件里,而不是在网络字节流中,所以拿到数据后用不一致的 schema 去解开,真是无法预期会拿到什么,如果还直接拿这个数据去存盘了,就更危险而难以修复了 之前没有出过问题,可能是客户端更新机制做得比较健壮。客户端上线先拉取版本 …
明明需求都做完了,硬要拉着人家去公司加班,真是变态 ToT 最近想推动一下协议版本号的事,版本号不一致的禁止登录。理论上,只要改了某条协议的定义,而客户端因为各种原因没有更新到协议文件,就有可能导致协议解析出错,服务器拿到异常数据。因为 sproto 的定义是放在 spb 文件里,而不是在网络字节流中,所以拿到数据后用不一致的 schema 去解开,真是无法预期会拿到什么,如果还直接拿这个数据去存盘了,就更危险而难以修复了 之前没有出过问题,可能是客户端更新机制做得比较健壮。客户端上线先拉取版本 …
发布 pysproto
今天是个值得纪念的日子,我终于将适用于 Python 3 的 pysproto 成功上传到 pypi 了,顺便写一篇博客吐槽下 Python 的打包发布系统 依稀记得之前将 C 文件都放在 src 目录里,结果死活编译不过,于是都散装放在根目录了;然后 Pypi 要先发布测试包,再在网页操作一下,发布成正式包。setup.py 作为包的描述文件,long_description 字段还得用 reStructure Text 的格式写,不然就提交不过。pysproto 这个模块需要头文件,但是屡屡 …
今天是个值得纪念的日子,我终于将适用于 Python 3 的 pysproto 成功上传到 pypi 了,顺便写一篇博客吐槽下 Python 的打包发布系统 依稀记得之前将 C 文件都放在 src 目录里,结果死活编译不过,于是都散装放在根目录了;然后 Pypi 要先发布测试包,再在网页操作一下,发布成正式包。setup.py 作为包的描述文件,long_description 字段还得用 reStructure Text 的格式写,不然就提交不过。pysproto 这个模块需要头文件,但是屡屡 …