NIMServerSetting.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. //
  2. // NIMServerSetting.h
  3. // NIMLib
  4. //
  5. // Created by Netease.
  6. // Copyright (c) 2015年 Netease. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "NIMEncryptionConfig.h"
  10. NS_ASSUME_NONNULL_BEGIN
  11. typedef NS_ENUM (NSInteger, NIMHandshakeType){
  12. NIMHandshakeTypeBasics = 0,
  13. NIMHandshakeTypeAdvanced,
  14. };
  15. typedef NS_ENUM (NSInteger, NIMLinkAddressType){
  16. NIMLinkAddressTypeIpv4 = 0, //仅使用IPv4
  17. NIMLinkAddressTypeIpv6, //仅使用IPv6
  18. NIMLinkAddressTypeAuto, //自动选择
  19. };
  20. /**
  21. * 云信服务器配置
  22. */
  23. @interface NIMServerSetting : NSObject
  24. /**
  25. * 握手协议类型。基础的类型仅支持设置module和version.使用RSA和RC4加密方式。
  26. * 高级类型,可以通过配置encryptConfig来指定使用的加密类型。默认:NIMHandshakeTypeBasics
  27. */
  28. @property (nonatomic,assign) NIMHandshakeType handshakeType;
  29. /**
  30. * module
  31. */
  32. @property (nonatomic,copy) NSString *module;
  33. /**
  34. * 版本
  35. */
  36. @property (nonatomic,assign) NSInteger version;
  37. /**
  38. * 是否是专属云
  39. */
  40. @property (nonatomic, assign) BOOL isSpecialCloud;
  41. /**
  42. * 握手加密配置
  43. */
  44. @property (nonatomic,readonly) NIMEncryptionConfig *encryptConfig;
  45. /**
  46. * IM 服务器 lbs 地址
  47. */
  48. @property (nonatomic,copy) NSString *lbsAddress;
  49. /**
  50. * IM 服务器默认地址, IPv4
  51. */
  52. @property (nonatomic,copy) NSString *linkAddress;
  53. /**
  54. * IM 服务器默认地址, IPv6
  55. */
  56. @property (nonatomic,copy) NSString *ipv6LinkAddress;
  57. /**
  58. * NOS 服务器 lbs 地址
  59. */
  60. @property (nonatomic,copy) NSString *nosLbsAddress;
  61. /**
  62. * NOS 上传服务器默认地址
  63. */
  64. @property (nonatomic,copy) NSString *nosUploadAddress;
  65. /**
  66. * 是否开启 HTTPS 支持
  67. * @discussion 默认情况为 YES,若需要使用非 HTTPS 进行文件上传下载,则设置为 NO。
  68. * 如果设置为 YES,上传将使用 https 上传,所有返回 url 的地方也会尝试将 http url 调整为 https url
  69. * 如果设置为 NO,上传将使用 http 上传,而所有返回 url 的地方都只返回原 url,而不做任何处理,同时 `SDKConfig` 中 `enabledHttpsForInfo` 和 `enabledHttpsForMessage` 将无效
  70. */
  71. @property (nonatomic,assign) BOOL httpsEnabled;
  72. /**
  73. * NOS 上传 Host,用于 HTTPS 上传时 Host 验证
  74. */
  75. @property (nonatomic,copy,nullable) NSString *nosUploadHost;
  76. /**
  77. * NOS 下载地址,用于拼接下载地址
  78. */
  79. @property (nonatomic,copy) NSString *nosDownloadAddress;
  80. /**
  81. * NOS 加速 Host
  82. */
  83. @property (nonatomic,copy,nullable) NSString *nosAccelerateHost;
  84. /**
  85. * NOS 加速替换地址
  86. */
  87. @property (nonatomic,copy,nullable) NSString *nosAccelerateAddress;
  88. /**
  89. * NT 服务器地址
  90. */
  91. @property (nonatomic,copy,nullable) NSString *ntServerAddress;
  92. /**
  93. * IPv4 连通性检测地址
  94. */
  95. @property (nonatomic,copy,nullable) NSString *lbsIpv4DetectAddress;
  96. /**
  97. * IPv6 连通性检测地址
  98. */
  99. @property (nonatomic,copy,nullable) NSString *lbsIpv6DetectAddress;
  100. /**
  101. * lbs返回的link地址的类型, 在初始化前设置
  102. */
  103. @property (nonatomic, assign) NIMLinkAddressType lbsLinkAddressType;
  104. /**
  105. * 从配置数据更新
  106. */
  107. - (void)updateSettingFromConfigData:(NSData *)data;
  108. @end
  109. NS_ASSUME_NONNULL_END