| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- #pragma once
- #include <cstdint>
- namespace im {
- // Client / Server 共用的协议常量。编解码、JSON、网络实现仍各放各工程。
- enum class Type : uint16_t {
- System = 1, // 心跳、被踢等
- Account = 2, // 登录/注册/密码/隐私
- Friend = 3, // 好友
- Message = 4, // 会话与聊天
- Sticker = 5, // 表情包
- Favorite = 6, // 收藏夹
- };
- enum class Cmd : uint16_t {
- Heartbeat = 1,
- Login = 2,
- Logout = 3,
- Chat = 4,
- Register = 5,
- SendCode = 6,
- ResetPassword = 7,
- ChangePassword = 8,
- FriendList = 9,
- ConvList = 10,
- MsgHistory = 11,
- AddFriend = 12,
- SetConfig = 13,
- SearchUser = 14,
- FriendRequestList = 15,
- HandleFriendRequest = 16,
- GetPrivacy = 17,
- SetPrivacy = 18,
- StickerPackList = 19,
- StickerPack = 20,
- GetSticker = 21,
- DeleteConv = 22,
- SetUnread = 23,
- DeleteFriend = 24,
- SetRemark = 25,
- GetProfile = 26,
- SetProfile = 27,
- GetAvatar = 28,
- PutFile = 29,
- GetFile = 30,
- FavoriteAdd = 31,
- FavoriteList = 32,
- FavoriteGet = 33,
- FavoriteUpdate = 34,
- FavoriteDelete = 35,
- DeleteMsg = 36,
- ChatNotify = 100,
- Kicked = 101,
- FriendRequestNotify = 102,
- FriendAcceptedNotify = 103,
- };
- namespace Err {
- constexpr int Ok = 0;
- constexpr int BadParam = 1;
- constexpr int NotLogin = 2;
- constexpr int AuthFail = 3;
- constexpr int NotFound = 4;
- constexpr int Exists = 5;
- constexpr int PhoneExists = 6;
- constexpr int BadSms = 7;
- constexpr int WeakPass = 8;
- constexpr int Forbidden = 9;
- constexpr int DbError = 10;
- constexpr int BadAccount = 11;
- constexpr int RateLimit = 12;
- constexpr int Disabled = 13;
- } // namespace Err
- namespace MsgType {
- constexpr int Text = 1;
- constexpr int Sticker = 2;
- constexpr int File = 3;
- constexpr int Card = 4;
- }
- namespace FavKind {
- constexpr int Text = 1;
- constexpr int Image = 2;
- constexpr int File = 3;
- constexpr int Card = 4;
- constexpr int Note = 5;
- }
- namespace FriendRel {
- constexpr int None = 0; // 非好友
- constexpr int Pending = 1; // 已发出申请,待对方同意
- constexpr int Friend = 2; // 已是好友
- constexpr int Incoming = 3; // 对方已申请加我
- }
- constexpr uint32_t kHeaderSize = 12;
- constexpr int64_t kFileHelperUid = 1;
- inline const char* type_name(uint16_t type)
- {
- switch (static_cast<Type>(type)) {
- case Type::System: return "System";
- case Type::Account: return "Account";
- case Type::Friend: return "Friend";
- case Type::Message: return "Message";
- case Type::Sticker: return "Sticker";
- case Type::Favorite: return "Favorite";
- }
- return "?";
- }
- inline const char* cmd_name(uint16_t cmd)
- {
- switch (static_cast<Cmd>(cmd)) {
- case Cmd::Heartbeat: return "Heartbeat";
- case Cmd::Login: return "Login";
- case Cmd::Logout: return "Logout";
- case Cmd::Chat: return "Chat";
- case Cmd::Register: return "Register";
- case Cmd::SendCode: return "SendCode";
- case Cmd::ResetPassword: return "ResetPassword";
- case Cmd::ChangePassword: return "ChangePassword";
- case Cmd::FriendList: return "FriendList";
- case Cmd::ConvList: return "ConvList";
- case Cmd::MsgHistory: return "MsgHistory";
- case Cmd::AddFriend: return "AddFriend";
- case Cmd::SetConfig: return "SetConfig";
- case Cmd::SearchUser: return "SearchUser";
- case Cmd::FriendRequestList: return "FriendRequestList";
- case Cmd::HandleFriendRequest: return "HandleFriendRequest";
- case Cmd::GetPrivacy: return "GetPrivacy";
- case Cmd::SetPrivacy: return "SetPrivacy";
- case Cmd::StickerPackList: return "StickerPackList";
- case Cmd::StickerPack: return "StickerPack";
- case Cmd::GetSticker: return "GetSticker";
- case Cmd::DeleteConv: return "DeleteConv";
- case Cmd::SetUnread: return "SetUnread";
- case Cmd::DeleteFriend: return "DeleteFriend";
- case Cmd::SetRemark: return "SetRemark";
- case Cmd::GetProfile: return "GetProfile";
- case Cmd::SetProfile: return "SetProfile";
- case Cmd::GetAvatar: return "GetAvatar";
- case Cmd::PutFile: return "PutFile";
- case Cmd::GetFile: return "GetFile";
- case Cmd::FavoriteAdd: return "FavoriteAdd";
- case Cmd::FavoriteList: return "FavoriteList";
- case Cmd::FavoriteGet: return "FavoriteGet";
- case Cmd::FavoriteUpdate: return "FavoriteUpdate";
- case Cmd::FavoriteDelete: return "FavoriteDelete";
- case Cmd::DeleteMsg: return "DeleteMsg";
- case Cmd::ChatNotify: return "ChatNotify";
- case Cmd::Kicked: return "Kicked";
- case Cmd::FriendRequestNotify: return "FriendRequestNotify";
- case Cmd::FriendAcceptedNotify: return "FriendAcceptedNotify";
- }
- return "?";
- }
- } // namespace im
|