
grill-me 使用kotlinpekkomongodb协程版本写一个联网五子棋 1.技术栈: 前端vueprotobufjs 2.协议: protobuf 3.网络websocket 4.服务端: kotlinnettymongodb协程版本参考E:\01_gitee\slm_20260523\server\code\framework\src\main\kotlin中对db的封装接口 5.创建房间和加入房间功能一个人创建房间后自己会进入房间有房间号另外的人输入房间号即可进入房间房间内有2个人不支持观战房间号你可以存到Mongodb递增即可用原子性防止重复 6.支持断线重连像桌子信息不要存数据库就存内存就行房间号路由到RoomActor即可断线的话重新输入LoginName则会重连到房间 7.同构架构也就是: 只有GameNode里面有Netty接受连接ChannelActor负责路由消息到RoomActor 8.有ktorvue请求后HttpNode后分配一个GameNode去连接nacos做注册中心请参考 E:\01_gitee\slm_20260523\server\code 中nacos模块的封装游戏服务器只有1个HttpNode 和 多个GameNode 9.msgId byteArray, 这样子Actorreceive中只有这一种类型 10.使用Class风格继承自AbstractActor 11.jdk21 gradlenacos3.1.x 12.输入用户名也就是 AccountId, 参考E:\01_gitee\slm_20260523\server\code中Debug平台 LoginName LoginType 作为账号标识然后才是游戏内角色 13.参考E:\02_gitcode\StudyDemo\AkkaDemo\src对于Actor的封装把pekkoactor包装一层让业务跑在kotlin协程上一个Actor对应一个协程 14.使用kotlin协程实现actor之间通信时同步非阻塞的效果 15.RoomActor使用pokko分片方案这样子就是可以水平扩展的集群了 16.参考E:\02_gitcode\StudyDemo\chat_pekko_droid\chat_server\start-server.bat和E:\02_gitcode\StudyDemo\chat_pekko_droid\chat_server\deploy写法进行一键docker-compose能启动服务器不需要打docker镜像 17.server放服务器代码client放客户端代码proto放公用的protobuf协议文件 18.一个kt文件中只有一个接口数据类 或者 类防止一个kt文件过大职责过多。 19.HttpNode不负责任何业务而是像E:\01_gitee\slm_20260523\server\code\portal\src\main\kotlin\game一样仅仅负责分配一个GameNode节点让玩家连接上Netty上之后任何业务都是发到GameNode处理比如创建账号创建角色及其创建房间和房间内对局等。 先把落地方案放AGENTS.md供我审核通过后审核不过我会补充信息再开始编码