# chat **Repository Path**: bytemode/chat ## Basic Information - **Project Name**: chat - **Description**: 多人在线聊天室demo 架构:客户端Unity,服务端Skynet。 - **Primary Language**: Lua - **License**: Not specified - **Default Branch**: skynet - **Homepage**: https://gitee.com/Cauchy_AQ/chat/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-09-06 - **Last Updated**: 2023-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多人在线聊天服务 ## skynet: 服务端开发 > 介绍:基于Skynet通用的登录服务器模版,实现玩家登录认证。玩法是玩家能切换进入不同房间,房间内的玩家能够涨经验值,并且能在房间中进行发言。每个房间经验值最高的即为管理,管理可以踢出玩家。房间内的玩家之间可以转让经验值等。 ### 特性 - 基于 skynet 的登录服务器模板,有网关、看门狗、登录服务 - 客户端和服务端通信,采用 [sproto](https://github.com/cloudwu/sproto) 协议 - 消息封包解包协议,采用二字节头部指定长度的字符串 - 采用 openresty 进行用户登录鉴权,模拟第三方 sdk 根据用户信息及 token 值等返回 uid - 看门狗维护 agent 池,定时检测用户状态,定时补充代理,并会回收代理。 - mysql 用于用户登录时加载数据,以及对用户定期存档,离线自动保存数据 - redis 用于存储服务运行时的相关日志消息(待做持久化处理) ### 构建 #### Build 1. `git clone https://github.com/cloudwu/skynet.git` 2. `cd skynet && make linux` 3. `mkdir project && cd project` 4. `git clone https://gitee.com/Cauchy_AQ/chat.git` 5. [openresty安装](http://openresty.org/cn/installation.html) 6. `cd openresty && ./start.sh` 7. `cd chat && ./main.sh` #### test 1. `./main.sh` 2. `cd client && ./test.sh` ### 服务 & 功能 目前支持通信指令: 1. `enter_room roomid`:进入房间 2. `leave_room`:退出房间 3. `list_members`:列出当前房间内所有玩家 4. `list_rooms`:查看当前所有房间 5. `say_public`:房间内公开聊天 6. `say_private uid`:房间内私人聊天 7. `kick uid`:管理员踢人 8. `send_exp`:转移经验值 9. `logout`:退出游戏 10. `afk`:挂机 ---- ## unity: 客户端开发 > Unity中使用Sproto协议与Skynet通信