JMSGConstants.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. /*
  2. * | | | | \ \ / / | | | | / _______|
  3. * | |____| | \ \/ / | |____| | / /
  4. * | |____| | \ / | |____| | | | _____
  5. * | | | | / \ | | | | | | |____ |
  6. * | | | | / /\ \ | | | | \ \______| |
  7. * | | | | /_/ \_\ | | | | \_________|
  8. *
  9. * Copyright (c) 2011 ~ 2015 Shenzhen HXHG. All rights reserved.
  10. */
  11. #ifndef JMessage_JMSGConstants____FILEEXTENSION___
  12. #define JMessage_JMSGConstants____FILEEXTENSION___
  13. #import <Foundation/Foundation.h>
  14. ///----------------------------------------------------
  15. /// @name type & define
  16. ///----------------------------------------------------
  17. /*!
  18. * @abstract 异步回调 block
  19. *
  20. * @discussion 大多数异步 API 都会以过个 block 回调。
  21. *
  22. * - 如果调用出错,则 error 不为空,可根据 error.code 来获取错误码。该错误码 JMessage 相关文档里有详细的定义。
  23. * - 如果返回正常,则 error 为空。从 resultObject 去获取相应的返回。每个 API 的定义上都会有进一步的定义。
  24. *
  25. */
  26. typedef void (^JMSGCompletionHandler)(id resultObject, NSError *error);
  27. /*!
  28. * @abstract 空的 CompletionHandler.
  29. *
  30. * @discussion 用于不需要进行处理时.
  31. */
  32. #define JMSG_NULL_COMPLETION_BLOCK ^(id resultObject, NSError *error){}
  33. /*!
  34. * @abstract 数据返回的异步回调
  35. *
  36. * @discussion 专用于数据返回 API.
  37. *
  38. * - objectId 当前数据的ID标识.
  39. * - 消息里返回 voice/image 的 media data 时, objectId 是 msgId;
  40. * - 用户里返回 avatar 头像数据时, objectId 是 username.
  41. *
  42. */
  43. typedef void (^JMSGAsyncDataHandler)(NSData *data, NSString *objectId, NSError *error);
  44. /*!
  45. * @abstract 媒体上传进度 block
  46. *
  47. * @discussion 在发送消息时,可向 JMSGMessage 对象设置此 block,从而可以得到上传的进度
  48. */
  49. typedef void (^JMSGMediaProgressHandler)(float percent, NSString *msgId);
  50. /*!
  51. * @abstract Generic 泛型
  52. */
  53. #if __has_feature(objc_generics) || __has_extension(objc_generics)
  54. # define JMSG_GENERIC(...) <__VA_ARGS__>
  55. #else
  56. # define JMSG_GENERIC(...)
  57. #endif
  58. /*!
  59. * @abstract nullable 用于定义某属性或者变量是否可允许为空
  60. */
  61. #if __has_feature(nullability)
  62. # define JMSG_NONNULL __nonnull
  63. # define JMSG_NULLABLE __nullable
  64. #else
  65. # define JMSG_NONNULL
  66. # define JMSG_NULLABLE
  67. #endif
  68. #if __has_feature(assume_nonnull)
  69. # ifdef NS_ASSUME_NONNULL_BEGIN
  70. # define JMSG_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
  71. # else
  72. # define JMSG_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
  73. # endif
  74. # ifdef NS_ASSUME_NONNULL_END
  75. # define JMSG_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END
  76. # else
  77. # define JMSG_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end")
  78. # endif
  79. #else
  80. # define JMSG_ASSUME_NONNULL_BEGIN
  81. # define JMSG_ASSUME_NONNULL_END
  82. #endif
  83. ///----------------------------------------------------
  84. /// @name enums
  85. ///----------------------------------------------------
  86. /*!
  87. * 会话类型 - 单聊、群聊
  88. */
  89. typedef NS_ENUM(NSInteger, JMSGConversationType) {
  90. /// 单聊
  91. kJMSGConversationTypeSingle = 1,
  92. /// 群聊
  93. kJMSGConversationTypeGroup = 2,
  94. /// 聊天室
  95. kJMSGConversationTypeChatRoom = 3,
  96. };
  97. /*!
  98. * 群组类型 - 私有、公开
  99. */
  100. typedef NS_ENUM(NSInteger, JMSGGroupType) {
  101. /// 私有群
  102. kJMSGGroupTypePrivate = 1,
  103. /// 公开群
  104. kJMSGGroupTypePublic = 2,
  105. };
  106. /*!
  107. * 消息内容类型 - 文本、语音、图片等
  108. */
  109. typedef NS_ENUM(NSInteger, JMSGContentType) {
  110. /// 不知道类型的消息
  111. kJMSGContentTypeUnknown = 0,
  112. /// 文本消息
  113. kJMSGContentTypeText = 1,
  114. /// 图片消息
  115. kJMSGContentTypeImage = 2,
  116. /// 语音消息
  117. kJMSGContentTypeVoice = 3,
  118. /// 自定义消息
  119. kJMSGContentTypeCustom = 4,
  120. /// 事件通知消息。服务器端下发的事件通知,本地展示为这个类型的消息展示出来
  121. kJMSGContentTypeEventNotification = 5,
  122. /// 文件消息
  123. kJMSGContentTypeFile = 6,
  124. /// 地理位置消息
  125. kJMSGContentTypeLocation = 7,
  126. /// 提示性消息
  127. kJMSGContentTypePrompt = 8,
  128. /// 视频消息
  129. kJMSGContentTypeVideo = 9,
  130. };
  131. /*!
  132. * 提示性消息的类型 - 消息撤回提示、后台自定义消息提示等
  133. */
  134. typedef NS_ENUM(NSInteger, JMSGPromptContentType) {
  135. /// 消息撤回提示
  136. kJMSGPromptContentTypeRetractMessage = 0,
  137. /// 自定义提示
  138. kJMSGPromptContentTypeAPPRbag = 1,
  139. };
  140. /*!
  141. * 消息状态
  142. */
  143. typedef NS_ENUM(NSInteger, JMSGMessageStatus) {
  144. /// 发送息创建时的初始状态
  145. kJMSGMessageStatusSendDraft = 0,
  146. /// 消息正在发送过程中. UI 一般显示进度条
  147. kJMSGMessageStatusSending = 1,
  148. /// 媒体类消息文件上传失败
  149. kJMSGMessageStatusSendUploadFailed = 2,
  150. /// 媒体类消息文件上传成功
  151. kJMSGMessageStatusSendUploadSucceed = 3,
  152. /// 消息发送失败
  153. kJMSGMessageStatusSendFailed = 4,
  154. /// 消息发送成功
  155. kJMSGMessageStatusSendSucceed = 5,
  156. /// 接收中的消息(还在处理)
  157. kJMSGMessageStatusReceiving = 6,
  158. /// 接收消息时自动下载媒体失败
  159. kJMSGMessageStatusReceiveDownloadFailed = 7,
  160. /// 接收消息成功
  161. kJMSGMessageStatusReceiveSucceed = 8,
  162. /// 消息已被取消发送
  163. kJMSGMessageStatusCanceledSend = 9,
  164. };
  165. /*!
  166. * 上传文件的类型
  167. */
  168. typedef NS_ENUM(NSInteger, JMSGFileType) {
  169. /// 未知的文件类型
  170. kJMSGFileTypeUnknown,
  171. /// 图片类型
  172. kJMSGFileTypeImage,
  173. /// 语音类型
  174. kJMSGFileTypeVoice,
  175. /// 文件类型
  176. kJMSGFileTypeFile,
  177. /// 视频类型
  178. kJMSGFileTypeVideo,
  179. };
  180. /*!
  181. * 平台类型
  182. */
  183. typedef NS_ENUM(NSInteger, JMSGPlatformType) {
  184. /// 所有平台
  185. kJMSGPlatformTypeAll = 0,
  186. /// Android 端
  187. kJMSGPlatformTypeAndroid = 1,
  188. /// iOS 端
  189. kJMSGPlatformTypeiOS = 2,
  190. /// Windows 端
  191. kJMSGPlatformTypeWindows = 4,
  192. /// web 端
  193. kJMSGPlatformTypeWeb = 16,
  194. };
  195. /*!
  196. * 群成员类型
  197. */
  198. typedef NS_ENUM(NSInteger, JMSGGroupMemberType) {
  199. /// 普通成员
  200. kJMSGGroupMemberTypeOrdinary = 0,
  201. /// 群主
  202. kJMSGGroupMemberTypeOwner = 1,
  203. /// 管理员
  204. kJMSGGroupMemberTypeAdmin = 2,
  205. };
  206. /*!
  207. * 发送消息透传的的类型
  208. */
  209. typedef NS_ENUM(NSInteger,JMSGTransMessageType) {
  210. /// 单聊透传消息
  211. kJMSGTransMessageTypeSingle = 1,
  212. /// 群里透传消息
  213. kJMSGTransMessageTypeGroup = 2,
  214. /// 设备间透传消息
  215. kJMSGTransMessageTypeCrossDevice = 3,
  216. };
  217. /*!
  218. * 消息事件类型
  219. *
  220. * 本类 JMSGEventNotificationType 是 SDK 下发的通知事件类型,主要分为:消息事件、非消息事件
  221. *
  222. * #### 消息事件
  223. *
  224. * 如:群事件,SDK 会作为一个特殊的消息类型下发,上层通过 JMSGMessageDelegate 类接收消息的代理方法接收消息事件.
  225. *
  226. * #### 非消息事件
  227. *
  228. * 如:被踢、加好友等,SDK 会作为通知事件下发,上层通过 JMSGEventDelegate、JMSGGroupDelegate 这些对应类的代理方法可监听此类事件.
  229. */
  230. typedef NS_ENUM(NSInteger, JMSGEventNotificationType) {
  231. // 消息事件
  232. /// 事件类型: 群组被创建
  233. kJMSGEventNotificationCreateGroup = 8,
  234. /// 事件类型: 退出群组
  235. kJMSGEventNotificationExitGroup = 9,
  236. /// 事件类型: 群组添加新成员
  237. kJMSGEventNotificationAddGroupMembers = 10,
  238. /// 事件类型: 群组成员被踢出
  239. kJMSGEventNotificationRemoveGroupMembers = 11,
  240. /// 事件类型: 群信息更新
  241. kJMSGEventNotificationUpdateGroupInfo = 12,
  242. /// 事件类型: 群禁言通知事件
  243. kJMSGEventNotificationGroupMemberSilence = 65,
  244. /// 事件类型: 管理员角色变更通知事件
  245. kJMSGEventNotificationGroupAdminChange = 80,
  246. /// 事件类型: 群主变更通知事件
  247. kJMSGEventNotificationGroupOwnerChange = 82,
  248. /// 事件类型: 群类型变更通知事件
  249. kJMSGEventNotificationGroupTypeChange = 83,
  250. /// 事件类型: 解散群组
  251. kJMSGEventNotificationDissolveGroup = 11001,
  252. /// 事件类型: 群组成员上限变更
  253. kJMSGEventNotificationGroupMaxMemberCountChange = 11002,
  254. };
  255. /*!
  256. * 通知事件类型
  257. *
  258. * #### 上层通过 JMSGEventDelegate 类里的方法来监听此类事件
  259. */
  260. typedef NS_ENUM(NSInteger, JMSGCommonEventType){
  261. /// 事件类型: 消息撤回
  262. kJMSGEventNotificationMessageRetract = 55,
  263. /// 事件类型: 消息透传
  264. kJMSGEventNotificationMessageTransparent = 12001,
  265. /// 事件类型: 消息回执变更
  266. kJMSGEventNotificationMessageReceiptStatusChange = 12002,
  267. };
  268. /*!
  269. * 用户登录状态变更事件类型
  270. *
  271. * #### 上层通过 JMSGUserDelegate 类里的方法来监听此类事件
  272. */
  273. typedef NS_ENUM(NSInteger, JMSGLoginStatusChangeEventType) {
  274. // 用户登录状态变更事件
  275. /// 事件类型: 登录被踢
  276. kJMSGEventNotificationLoginKicked = 1,
  277. /// 事件类型: 非客户端修改密码强制登出事件
  278. kJMSGEventNotificationServerAlterPassword = 2,
  279. /// 事件类型:用户登录状态异常事件(需要重新登录)
  280. kJMSGEventNotificationUserLoginStatusUnexpected = 70,
  281. /// 事件类型:当前登录用户信息变更通知事件(非客户端修改)
  282. kJMSGEventNotificationCurrentUserInfoChange = 40,
  283. /// 事件类型:当前登录用户被删除事件(本地用户信息会被清空)
  284. kJMSGEventNotificationCurrentUserDeleted = 10001,
  285. /// 事件类型:当前登录用户被禁用事件(本地用户信息会被清空)
  286. kJMSGEventNotificationCurrentUserDisabled = 10002,
  287. };
  288. /*!
  289. * 好友事件类型
  290. *
  291. * #### 上层通过 JMSGEventDelegate 类里的方法来监听此类事件
  292. */
  293. typedef NS_ENUM(NSInteger, JMSGFriendEventType) {
  294. // 好友相关事件
  295. /// 事件类型: 收到好友邀请
  296. kJMSGEventNotificationReceiveFriendInvitation = 51,
  297. /// 事件类型: 对方接受了你的好友邀请
  298. kJMSGEventNotificationAcceptedFriendInvitation = 52,
  299. /// 事件类型: 对方拒绝了你的好友邀请
  300. kJMSGEventNotificationDeclinedFriendInvitation = 53,
  301. /// 事件类型: 对方将你从好友中删除
  302. kJMSGEventNotificationDeletedFriend = 6,
  303. /// 事件类型:非客户端修改好友关系收到好友更新事件
  304. kJMSGEventNotificationReceiveServerFriendUpdate = 7,
  305. };
  306. /*!
  307. * 群组事件类型
  308. *
  309. * #### 上层通过 JMSGGroupDelegate 类里的方法来监听此类事件
  310. */
  311. typedef NS_ENUM(NSInteger, JMSGGroupEventType) {
  312. /// 事件类型:发布群公告
  313. kJMSGEventNotificationPublishGroupAnnouncement = 86,
  314. /// 事件类型:删除群公告
  315. kJMSGEventNotificationDeleteGroupAnnouncement = 87,
  316. /// 事件类型:置顶/取消置顶 群公告
  317. kJMSGEventNotificationTopGroupAnnouncement = 88,
  318. /// 事件类型:添加群组黑名单
  319. kJMSGEventNotificationAddGroupBlacklist = 89,
  320. /// 事件类型:删除群组黑名单
  321. kJMSGEventNotificationDelGroupBlacklist = 90,
  322. };
  323. /*!
  324. * 聊天室事件类型
  325. *
  326. * #### 上层通过 JMSGEventDelegate 类里的方法来监听此类事件
  327. */
  328. typedef NS_ENUM(NSInteger, JMSGChatRoomEventType) {
  329. /// 事件类型:添加管理员
  330. kJMSGEventNotificationChatRoomAddAdmin = 130,
  331. /// 事件类型:删除管理员
  332. kJMSGEventNotificationChatRoomDelAdmin = 131,
  333. /// 事件类型:添加黑名单
  334. kJMSGEventNotificationChatRoomAddBlacklist = 132,
  335. /// 事件类型:删除黑名单
  336. kJMSGEventNotificationChatRoomDelBlacklist = 133,
  337. /// 事件类型:添加禁言通知
  338. kJMSGEventNotificationChatRoomAddSilence = 135,
  339. /// 事件类型:解除禁言通知
  340. kJMSGEventNotificationChatRoomDelSilence = 136,
  341. };
  342. ///----------------------------------------------------
  343. /// @name errors
  344. ///----------------------------------------------------
  345. /*!
  346. * @abstract JMessage SDK 的错误码汇总
  347. *
  348. * @discussion 错误码以 86 打头,都为 iOS SDK 内部的错误码
  349. */
  350. typedef NS_ENUM(NSInteger, JMSGSDKErrorCode) {
  351. // --------------------- Network (860xxx)
  352. /// 下载失败
  353. kJMSGErrorSDKNetworkDownloadFailed = 860015,
  354. /// 其他网络原因
  355. kJMSGErrorSDKNetworkOtherError = 860016,
  356. /// 服务器获取用户Token失败
  357. kJMSGErrorSDKNetworkTokenFailed = 860017,
  358. /// 上传资源文件失败
  359. kJMSGErrorSDKNetworkUploadFailed = 860018,
  360. /// 上传资源文件Token验证失败
  361. kJMSGErrorSDKNetworkUploadTokenVerifyFailed = 860019,
  362. /// 获取服务器Token失败
  363. kJMSGErrorSDKNetworkUploadTokenGetFailed = 860020,
  364. /// 服务器返回数据错误(没有按约定返回)
  365. kJMSGErrorSDKNetworkResultUnexpected = 860021,
  366. /// 服务器端返回数据格式错误
  367. kJMSGErrorSDKNetworkDataFormatInvalid = 860030,
  368. // --------------------- DB & Global params (861xxx)
  369. /// 数据库删除失败 (预期应该成功)
  370. kJMSGErrorSDKDBDeleteFailed = 861000,
  371. /// 数据库更新失败 (预期应该成功)
  372. kJMSGErrorSDKDBUpdateFailed = 861001,
  373. /// 数据库查询失败 (预期应该成功)
  374. kJMSGErrorSDKDBSelectFailed = 861002,
  375. /// 数据库插入失败 (预期应该成功)
  376. kJMSGErrorSDKDBInsertFailed = 861003,
  377. /// 数据库迁移失败
  378. kJMSGErrorSDKDBMigrateFailed = 861004,
  379. /// Appkey 不合法
  380. kJMSGErrorSDKParamAppkeyInvalid = 861100,
  381. /// SDK 内部方法参数检查错误
  382. kJMSGErrorSDKParamInternalInvalid = 861101,
  383. // ------------------------ Third party (862xxx)
  384. /// 七牛相关
  385. kJMSGQiniuTokenInvalid = 862001,
  386. // ------------------------ User (863xxx)
  387. /// 用户名不合法
  388. kJMSGErrorSDKParamUsernameInvalid = 863001,
  389. /// 用户密码不合法
  390. kJMSGErrorSDKParamPasswordInvalid = 863002,
  391. /// 用户未登录
  392. kJMSGErrorSDKUserNotLogin = 863004,
  393. // 请求用户数量超出限制(目前单次最大请求500个)
  394. kJMSGErrorSDKUserNumberOverflow = 863005,
  395. // 用户已登录
  396. kJMSGErrorSDKUserInvalidState = 863006,
  397. // 用户正在退出的过程中
  398. kJMSGErrorSDKUserLogoutingState = 863007,
  399. // 添加好友失败
  400. kJMSGErrorSDKUserAddFriendFailState = 863008,
  401. // 删除好友失败
  402. kJMSGErrorSDKUserDeleteFriendFailState = 863009,
  403. // ------------------------ Media Resource (864xxx)
  404. /// 这不是一条媒体消息
  405. kJMSGErrorSDKNotMediaMessage = 864001,
  406. /// 下载媒体资源路径或者数据意外丢失
  407. kJMSGErrorSDKMediaResourceMissing = 864002,
  408. /// 媒体CRC码无效
  409. kJMSGErrorSDKMediaCrcCodeIllegal = 864003,
  410. /// 媒体CRC校验失败
  411. kJMSGErrorSDKMediaCrcVerifyFailed = 864004,
  412. /// 上传媒体文件时, 发现文件不存在
  413. kJMSGErrorSDKMediaUploadEmptyFile = 864005,
  414. /// 媒体HASH码无效
  415. kJMSGErrorSDKMediaHashCodeIllegal = 864006,
  416. /// 媒体HASH校验失败
  417. kJMSGErrorSDKMediaHashVerifyFailed = 864007,
  418. /// 这条消息不支持转发
  419. kJMSGErrorSDKMessageNotSupportForward = 864008,
  420. // ------------------------ Message (865xxx)
  421. /// 无效的消息内容
  422. kJMSGErrorSDKParamContentInvalid = 865001,
  423. /// 空消息
  424. kJMSGErrorSDKParamMessageNil = 865002,
  425. /// 消息不符合发送的基本条件检查
  426. kJMSGErrorSDKMessageNotPrepared = 865003,
  427. /// 你不是群组成员
  428. kJMSGErrorSDKMessageNotInGroup = 865004,
  429. /// 非法的 JSON 格式, 无法解析 Message JSON Protocol
  430. kJMSGErrorSDKMessageProtocolInvalidJsonFormat = 865005,
  431. /// 消息协议格式不正确, 可能缺少了字段
  432. kJMSGErrorSDKMessageProtocolLackFields = 865006,
  433. /// 消息协议格式不正确, 字段值非法
  434. kJMSGErrorSDKMessageProtocolInvalidFieldValue = 865007,
  435. /// 本地消息协议需要升级(收到新版本)
  436. kJMSGErrorSDKMessageProtocolUpgradeNeeded = 865008,
  437. /// 收到不支持消息内容类型(建议升级)
  438. kJMSGErrorSDKMessageProtocolContentTypeNotSupport = 865009,
  439. /// 消息状态不合法
  440. kJMSGErrorSDKMessageStatusNotLegal = 865010,
  441. /// 取消发送消息
  442. kJMSGErrorSDKMessageCancelSend = 865011,
  443. /// 取消下载消息多媒体文件
  444. kJMSGErrorSDKMessageCancelDownload = 865012,
  445. // ------------------------ Conversation (866xxx)
  446. /// 未知的会话类型
  447. kJMSGErrorSDKParamConversationTypeUnknown = 866001,
  448. /// 会话 username 无效
  449. kJMSGErrorSDKParamConversationUsernameInvalid = 866002,
  450. /// 会话 groupId 无效
  451. kJMSGErrorSDKParamConversationGroupIdInvalid = 866003,
  452. /// 会话没有找到
  453. kJMSGErrorSDKparamConversationNotFound = 866004,
  454. /// 会话头像没找到
  455. kJMSGErrorSDKConversationAvatarNotFound = 866005,
  456. // ------------------------ Group (867xxx)
  457. /// groupId 无效
  458. kJMSGErrorSDKParamGroupGroupIdInvalid = 867001,
  459. /// group 相关字段无效
  460. kJMSGErrorSDKParamGroupGroupInfoInvalid = 867002,
  461. // ------------------------ ChatRoom (868xxx)
  462. /// ChatRoom 不支持
  463. kJMSGErrorSDKChatRoomNotSupport = 868001,
  464. /// ChatRoom 不存在
  465. kJMSGErrorSDKChatRoomNotExist = 868002,
  466. /// unknown
  467. kJMSGErrorSDKUnknownError = 869999,
  468. };
  469. /*!
  470. * @abstract SDK依赖的内部 HTTP 服务返回的错误码。
  471. *
  472. * @discussion 这些错误码也会直接通过 SDK API 返回给应用层。
  473. */
  474. typedef NS_ENUM(NSUInteger, JMSGHttpErrorCode) {
  475. /// 服务器端内部错误
  476. kJMSGErrorHttpServerInternal = 898000,
  477. /// 注册用户已经存在 (403)
  478. kJMSGErrorHttpUserExist = 898001,
  479. /// 用户不存在 (403)
  480. kJMSGErrorHttpUserNotExist = 898002,
  481. /// 参数无效 (400)
  482. kJMSGErrorHttpPrameterInvalid = 898003,
  483. /// 密码错误 (403)
  484. kJMSGErrorHttpPasswordError = 898004,
  485. /// 内部UID 无效 (403)
  486. kJMSGErrorHttpUidInvalid = 898005,
  487. /// Gid不存在 (403)
  488. kJMSGErrorHttpGroupNotExist = 898006,
  489. /// Http 请求没有验证信息
  490. kJMSGErrorHttpMissingAuthenInfo = 898007,
  491. /// Http 请求验证失败
  492. kJMSGErrorHttpAuthenticationFailed = 898008,
  493. /// Appkey 不存在
  494. kJMSGErrorHttpAppkeyNotExist = 898009,
  495. /// Http 请求 token 过期
  496. kJMSGErrorHttpTokenExpired = 898010,
  497. /// 服务器端响应超时
  498. kJMSGErrorHttpServerResponseTimeout = 898030,
  499. };
  500. /*!
  501. * @abstract SDK依赖的内部 TCP 服务返回的错误码
  502. *
  503. * @discussion 这些错误码也会直接通过 SDK API 返回给应用层。
  504. */
  505. typedef NS_ENUM(NSUInteger, JMSGTcpErrorCode) {
  506. /// appKey 未被注册
  507. kJMSGErrorTcpAppkeyNotRegistered = 800003,
  508. /// 服务器端内部错误
  509. kJMSGErrorTcpServerInternalError = 800009,
  510. /// 用户在登出状态
  511. kJMSGErrorTcpUserLogoutState = 800012,
  512. /// 用户在离线状态
  513. kJMSGErrorTcpUserOfflineState = 800013,
  514. /// 发起请求的用户设备不匹配
  515. kJMSGErrorTcpUserDeviceNotMatch = 800016,
  516. /// 用户未注册
  517. kJMSGErrorTcpUserNotRegistered = 801003,
  518. /// 用户密码错误
  519. kJMSGErrorTcpUserPasswordError = 801004,
  520. /// 用户被禁用
  521. kJMSGErrorTcpUserDisabled = 801006,
  522. /// 多通道同时登录错误,登录失败
  523. kJMSGErrorTcpLoginMultiChannelError = 801007,
  524. /// 目标用户不存在
  525. kJMSGErrorTcpTargetUserNotExist = 803003,
  526. /// 目标群组不存在
  527. kJMSGErrorTcpTargetGroupNotExist = 803004,
  528. /// 用户不在群组里
  529. kJMSGErrorTcpUserNotInGroup = 803005,
  530. /// 用户在黒名单里
  531. kJMSGErrorTcpUserInBlacklist = 803008,
  532. /// 内容不合法
  533. kJMSGErrorTcpContentIsIllegal = 803009,
  534. /// 发送消息失败,请求用户被禁言
  535. kJMSGErrorTcpUserBannedSendMessage = 803012,
  536. /// 群组成员列表为空
  537. kJMSGErrorTcpGroupMembersEmpty = 810002,
  538. /// 群组成员重复
  539. kJMSGErrorTcpGroupMembersDuplicated = 810007,
  540. /// 重复申请入群或重复邀请成员入群
  541. kJMSGErrorTcpGroupApplyRepeat = 856003,
  542. /// 用户在聊天室中被禁言
  543. kJMSGErrorTcpUserBannedInChatRoom = 847002,
  544. /// 用户已经在聊天室黑名单中
  545. kJMSGErrorTcpUserHasInChatRoomBlacklist = 7132006,
  546. /// 目标用户不在聊天室黑名单里
  547. kJMSGErrorTcpUserNotInChatRoomBlacklist = 7133001,
  548. /// 用户已经在聊天室管理员列表中
  549. kJMSGErrorTcpUserHasInChatRoomAdminList = 7130002,
  550. /// 目标用户不在聊天室管理员列表里
  551. kJMSGErrorTcpUserNotInChatRoomAdminList = 7131002,
  552. /// 禁言时间不在允许范围内
  553. kJMSGErrorTcpMemberSilenceTimesOverLimit = 765003,
  554. };
  555. ///----------------------------------------------------
  556. /// @name Global keys 全局静态变量定义
  557. ///----------------------------------------------------
  558. // General key
  559. static NSString *const KEY_APP_KEY = @"appkey";
  560. // User
  561. static NSString *const KEY_USERNAME = @"username";
  562. static NSString *const KEY_PASSWORD = @"password";
  563. static NSString *const KEY_NEW_PASSWORD = @"new_password";
  564. static NSString *const KEY_OLD_PASSWORD = @"old_password";
  565. static NSString *const KEY_NICKNAME = @"nickname"; //昵称
  566. static NSString *const KEY_AVATAR = @"avatar"; //头像
  567. static NSString *const KEY_GENDER = @"gender"; //性别
  568. static NSString *const KEY_BIRTHDAY = @"birthday"; //生日
  569. static NSString *const KEY_REGION = @"region"; //区域
  570. static NSString *const KEY_SIGNATURE = @"signature";//签名
  571. static NSString *const KEY_ADDRESS = @"address"; //地址
  572. static NSString *const KEY_STAR = @"star";
  573. #endif