#ifndef PROTOCOL_H #define PROTOCOL_H /************************************************ * IM通讯协议规定 * * 功能码 [参数] * * 客户端功能码规定: 参数: 例子: 说明: * 1 = 请求登录 用户昵称 1 张三 当客户端登录时必须先发送这条命令,告诉服务端自己的昵称 * 2 = 发送私聊消息 私聊对象 消息内容 2 李四 你妈喊你回家吃饭 当A向B发送一条私聊消息时,A要向服务器发送这条指令,告诉服务器消息发给谁和发什么消息 * 3 = 发送群聊消息 消息内容 3 大家好,我是张三 当A向群聊发送一条消息时,直接告诉服务端需要发什么内容即可 * * 服务端功能码规定: 参数: 例子: 说明: * 1 = 发送私聊消息 用户昵称 消息内容 1 张三 你妈喊你回家吃饭 当A向B发送一条私聊消息时,B会收到这条指令,其中昵称是指A(发送者)的昵称 * 2 = 发送群聊消息 用户昵称 消息内容 2 张三 大家好,我是张三 当A向群聊发送一条消息时,所有人都会收到这条指令,其中昵称是指A(发送者)的昵称 * 3 = 某人上线 用户昵称 3 张三 当A上线时,所有人都会收到这条指令,其中昵称是A(上线者)的昵称 * 4 = 某人下线 用户昵称 4 张三 当A下线时,所有人都会手套这条指令,其中昵称是A(下线者)的昵称 * 10 = 登录结果 是否成功(0:成功,!0:失败) [当前在线人数] [当前在线人员列表] * 成功时 10 0 4 张三 李四 王五 赵六 当客户端发送登录请求后,如果登录成功则返回当前在线人数与昵称列表,如果失败就返回一个!0值 * 失败时 10 1 * ***********************************************/ /** * @brief 服务端功能码 */ enum ServerFunctionCode { // 私聊消息 PrivateMessage = 1, // 群聊消息 GroupMessage = 2, // 用户上线 UserOnline = 3, // 用户下线 UserOffline = 4, // 登录结果 LoginResult = 10 }; /** * @brief 客户端功能码 */ enum ClientFunctionCode { // 登录 Login = 1, // 发送私聊消息 SendPrivateMessage = 2, // 发送群聊消息 SendGroupMessage = 3 }; #endif // PROTOCOL_H