# AsyncChatServer **Repository Path**: hdt3213/AsyncChatServer ## Basic Information - **Project Name**: AsyncChatServer - **Description**: No description available - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-03-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 使用TCP连接, Json格式通信, 请以`"\n"`标记一条消息的结束. # 客户端请求 ## 账户系统 ### 用户注册 ``` request: { "action": "account/register", "name": str, "password": str, "face": int } response: { "status": "ok" / ErrorMsg, "uid": int } ``` ### 用户登录 ``` request: { "action": "account/login", "uid": str, "password": str, } response: { "status": status, } ``` 查看个人信息 ``` request: { "action": "account/self" } response: { "status": status, "name": str, "face": int, "groups": { { "group": gid, "role": int // -1: forbidden, 1: member, 2: manager, 3: creator } } } ``` ## 私信系统 ### 发送消息 ``` request: { "action": "chat/send", "dest": uid, "msg": str } response: { "status": } ``` 对方收到服务器推送: ``` push: { "event": "chat/msg" "sender": uid, "msg": str } ``` ### 发送文件 1. 发送方询问是否可以发送 ``` request: { "action": "file/request" "filename": str, "size": int } response: { "status": status, "fid": str, } ``` 2. 发送方询问后, 接受方收到推送 ``` push: { "event": "file/request", "fid": fid "sender": uid, "filename": str, "size": int } ``` 3. 接收方选择是否接收文件 ``` request: { "action": "file/response", "fid": fid "permission": 0 / 1 } response: { "status": status } ``` 4. 服务器将对方的答复推送到发送方 ``` push: { "event": "file/response", "permission": 0 / 1, "fid": fid, } ``` 5. 若对方允许, 则开始发送文件 ``` request: { "action": "file/send", "fid": fid, "data": data } ``` ## 群聊系统 ### 创建群组 ``` request: { "action": "group/create", "name": str, "face": int, } response: { "status": status, "gid": gid } ``` ### 修改群组 ``` request: { "action": "group/edit", "gid": str, "name": str, "face": int, } response: { "status": status, } ``` ### 加入群组 ``` request: { "action": "group/join", "gid": gid, } response: { "status": status } ``` ### 退出群组 ``` request: { "action": "group/quit", "gid": gid } response: { "status": status } ``` ### 发送群消息 ``` request: { "action": "group/send", "gid": gid "msg": str } response: { "status": status } ``` 服务器会向所有群成员发送推送: ``` push: { "event": "group/msg", "gid": gid, "sender": uid, "msg": str } ``` ### 查看群成员 ``` request: { "action": "group/members", "gid": gid } response: { "status": status, "list": [ { "uid": uid, "name": str, "role": int // 1: member, 2: manager, 3: creator }, ] } ``` ### 踢出群组 ``` request: { "action": "group/expel" "gid": gid, "uid": uid, } response: { "status": status } ``` 被踢的用户会收到服务器推送: ``` push: { "event": "group/expel" "gid": gid } ``` ### 禁言用户 ``` request: { "action": "group/forbid" "gid": gid, "uid": uid, } response: { "status": status } ``` 目标用户会收到服务器推送: ``` push: { "event": "group/forbid", "gid": gid } ``` ### 解除禁言 ``` request: { "action": "group/allow" "gid": gid, "uid": uid, } response: { "status": status } ``` 目标用户会收到服务器推送: ``` push: { "event": "group/allow", "gid": gid } ``` ### 设置管理员 ``` request: { "action": "group/assign" "gid": gid, "uid": uid, } response: { "status": status } ``` 目标用户会收到服务器推送: ``` push: { "event": "group/assign", "gid": gid } ``` ### 撤销管理员 ``` request: { "action": "group/dismiss" "gid": gid, "uid": uid, } response: { "status" status } ``` 目标用户会收到服务器推送: ``` push: { "event": "group/dismiss", "gid": gid, } ```