实现多用户的在线同步编辑图片画板。
- ⭐ 实现局域网内部联通
- 🔒 保存用户数据(账号+密码)
- 🆙 用户更改自动同步
- 👍 自由更改文件内容
- 💡 多文件切换,房间系统
用户可以:
- 注册账号 + 密码与登录
- 创建文件
- 切换文件
- 查看在线用户列表
- 查看操作记录
- 直接编辑文件
- 删除文件
- 撤销操作
- 像素和方形操作
- 绘制直线与圆
- 自行导入上传图片
- (可扩展性,尚未实现)自定义multipixel图形
- 实现多用户协同,压测可验证服务器在60人下的稳定性。
服务端使用C++提供后端服务,客户端使用浏览器与web开发完成。
用户数据存放使用SQLite3管理。
登录请求采用 http POST 方法,不使用套接字。
发包和解包使用WebSocket,数据包传输使用json与二进制解析。
后端路由使用 Crow 库搭建。
画布的文件管理采用二进制文件与json日志文件相结合的管理方法。
前端使用原生的 Websocket API + HTML 开发。
- 前端 Web 开发
- 后端 C++ 开发与服务器架构
- 网络编程与高并发协调
- 文件管理系统
- Sqlite3 操作管理
- 内存与数据结构调度
服务端启动请确保配置过 asio zlib Sqlite3 的开发者模式。
可通过 server_startup.sh 快速启动。
客户端启动可以通过 /client 子目录下 python3 launcher.py (AI generated) 的简易启动脚本打开。
并确保在 /client 子目录下运行了 python3 -m http.server 8080,使客户端运行在8080端口号下打开。
技术问题分析以及各更新简介查阅 ./docs/TDD.md 。
文件系统、json接口以及二进制数据解析方法等查阅 ./docs/declaration.md。
附有若干测试文件 (AI generated),可联系 Tab_1bit0 本人。
这也只不过一个小玩具。3600行代码,大概3000行不到的核心逻辑,没有技术含量,只需要一个上过cpp跟数据结构课的学生,配上一个LLM Agent就可以实现。Tab_1bit0本人目前的水平能力也止步于此。
我说我想成为一个coding高手,我想转专业,我想写一辈子代码。于内心而言,我都不知道这样的宏大理想能否和现在捉襟见肘的个人能力相匹配——就像做小学生的时候,看着烧杯里的硫酸铜溶液惊呼,说我以后想要当化学家同样的荒诞。只不过现在我指着一些用Agent没几分钟就能构建完的逻辑,指着一言难尽的工程代码质量说,你看,我以后真的想做Computer Science想做码类工作呐。
可惜身处当下的我,没法解读未来:我只能发问。
冥昭瞢闇,誰能極之?馮翼惟像,何以識之? ——天問(楚辭卷第三)屈原
总会有一天,我也可以参与维护那些数十百万行代码的工程项目吧?
总会有一天,我也可以拥有那些大三大四研究生学长的专业能力吧?
可是都离现在的Tab_1bit0太遥远了。
还是永远地怀抱着这些疑惑前进吧。到了未来,这些问题一定能得到解答的。
在
_1bit0的电子洋流里浮潜一会吧,Tab。 「大切なものといつかまた巡り会えますように」。 「祝你有一天能和你重要的事物重逢」。