# chat **Repository Path**: deng_yuniubi/chat ## Basic Information - **Project Name**: chat - **Description**: 基于websocket的聊天室服务器 1. 客户端新用户注册 2. 客户端用户登录 3. 添加好友和添加群组 4. 好友聊天 5. 群组聊天 6. 房间聊天 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-07-03 - **Last Updated**: 2024-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: WebSocket, Cpp ## README websocket实现的聊天室功能,根据业务可以进行拓展 1、RoomManager是房间管理类,俗称业务类 2、server是服务器类 3、inc头文件、json.h暂未使用,使用是jsoncpp库,log日志类 4、server中on*函数,例如on_open函数,当客户端连接时会自动调用该函数 大房间:所说的广播,client一链接就会创建大房间加入,client断开时退出 暂时未加入数据库服务 已实现功能:登录、加入房间、离开房间、一对一发消息、房间内群发、广播 已接入线程池 数据格式: 登录 ``` { "msgid": 1, "id": 11, //用户id "account": 2019, //账号 "password": "666" //密码 } ``` 加入房间 ``` { "msgid": 1, "id": 12, "roomId": "zhihuishu" //房间号 } ``` 离开房间 ``` { "msgid": 2, "id": 12, "leaveRoomId": "xxxx" //离开的房间号 } ``` 一对一聊天 ``` { "msgid": 5, //消息类型 "id": 11, //发送者id "from": 11, //来自谁,一般是id,后面可以改成用户昵称 "to": 12, //接收者id "message": "这是一条测试消息" //消息 } ``` 房间内聊天 ``` { "msgid": 6, "id": 11, "message": "发送给某个房间的所有成员" } ``` server和client如何编译: 1、cd server/build 2、make 3、.exe位于bin路径下