NERoom SDK V1.40.0
载入中...
搜索中...
未找到
room_kit_interface.h
浏览该文件的文档.
1// Copyright (c) 2022 NetEase, Inc. All rights reserved.
2// Use of this source code is governed by a MIT license that can be
3// found in the LICENSE file.
4
11#ifndef ROOM_KIT_INTERFACE_H
12#define ROOM_KIT_INTERFACE_H
13
14#include <memory>
15#include <unordered_map>
16
18#include "base_type_defines.h"
21#include "room_kit_listener.h"
24
25namespace neroom {
36
44
48typedef struct tagNEIMServerConfig {
50 int negoKeyNeca{1};
51 int commNeca{1};
52 std::string lbs;
53 std::list<std::string> lbsBackupAddress;
54 std::string nosLbs;
55 std::string link;
56 std::string linkIpv6;
57 std::string nosUploader;
58 std::string nosUploaderHost;
60 std::string negoKeyNecaKeyParta;
61 std::string negoKeyNecaKeyPartb{"10001"};
63 std::string nosDownloader;
64 std::vector<std::string> nosAccelerateHostList;
65 std::string nosAccelerate;
66 std::string probeIpv4Url;
67 std::string probeIpv6Url;
68 std::list<std::string> httpDnsServerInterface;
69 bool httpsEnabled = true;
71
75typedef struct tagNERtcServerConfig {
76 std::string lbsServer;
77 std::string channelServer;
78 std::string statisticsServer;
79 std::string roomServer;
80 std::string compatServer;
81 std::string nosLbsServer;
82 std::string nosUploadSever;
83 std::string nosTokenServer;
84 std::string cloudProxyServer;
86 std::string quicProxyServer;
87 std::string mediaProxyServer;
90 bool useIPv6 = false;
92
106
116
121 bool nosAntiLeech = false;
123 std::string canvasBgColor = "rgba(255, 255, 255, 255)";
125
129typedef struct tagNERoomKitOptions {
130 std::string appKey;
131 std::string logPath;
133 bool reuseIM = false;
134 bool useAssetServerConfig = false;
137 std::string serverUrl;
138 std::unordered_map<std::string, std::string> extras;
141
145typedef struct tagNEDomainItem {
146 std::string domain = "";
148
152typedef struct tagNEDomainInfo {
153 long ttl = 0;
154 long updateTime = 0;
155 int racingLimit = 0;
156 long switchTimeout = 0;
157 std::list<NEDomainItem> domainList;
159
168
173public:
177 INERoomKit() = default;
178
182 virtual ~INERoomKit() = default;
183
190 virtual void initialize(const NERoomKitOptions& options, const NECallback<>& callback = NECallback<>()) = 0;
191
196 virtual void release() = 0;
197
202 virtual bool isInitialized() const = 0;
203
209 virtual NESDKVersions getSdkVersions() const = 0;
210
216 virtual int switchLanguage(NERoomLanguage language) = 0;
217
223
229
235
241
247
252 virtual void uploadLog(const NECallback<std::string>& callback) = 0;
253
259 virtual std::string getCurrentLogPath() = 0;
260
267
274
281 virtual void invokeMethod(const std::string& method, const std::string& parameters, const NECallback<>& callback) = 0;
282
288 virtual std::string getDeviceId() = 0;
289
294
300 virtual int switchDomain(const std::string& domain) = 0;
301
308 virtual NEDomainInfoResult getAvailableDomain(const std::string& appKey) = 0;
309};
310
311#ifdef __cplusplus
312extern "C" {
313#endif
319
324NEROOMKIT_INTERFACE_EXPORT void destroyNERoomKit();
325
326#ifdef __cplusplus
327}
328#endif
329
330} // namespace neroom
331
332#endif // ROOM_KIT_INTERFACE_H
登录服务接口文件
基本类型定义头文件
#define NEROOMKIT_INTERFACE_EXPORT
Kit 全局事件监听类
INERoomKit()=default
构造函数
virtual INEAuthService * getAuthService()=0
获取鉴权服务
virtual std::string getDeviceId()=0
获取device id
virtual int switchDomain(const std::string &domain)=0
切换SDK服务器地址
virtual void uploadLog(const NECallback< std::string > &callback)=0
上传 SDK 日志
virtual void initialize(const NERoomKitOptions &options, const NECallback<> &callback=NECallback<>())=0
初始化组件
virtual std::string getCurrentLogPath()=0
获取当前日志路径
virtual int switchLanguage(NERoomLanguage language)=0
切换语言
virtual NEDomainInfoResult getAvailableDomain(const std::string &appKey)=0
基于 AppKey 获取可用的服务器域名
virtual void invokeMethod(const std::string &method, const std::string &parameters, const NECallback<> &callback)=0
执行自定义方法
virtual void release()=0
反初始化组件
virtual INERoomService * getRoomService()=0
获取房间服务
virtual ~INERoomKit()=default
析构函数
virtual NESDKVersions getSdkVersions() const =0
查询版本号
virtual NENetworkType getNetworkType()=0
获取当前网络类型
virtual INENosService * getNosService()=0
获取nos服务
virtual void removeGlobalEventListener(INEGlobalEventListener *listener)=0
移除全局事件监听器
virtual void addGlobalEventListener(INEGlobalEventListener *listener)=0
添加全局事件监听器
virtual INEMessageChannelService * getMessageChannelService()=0
获取消息通道服务,提供房间内发送自定义消息能力
virtual INEExtensionService * getExtensionService()=0
获取扩展服务
virtual bool isInitialized() const =0
查询初始化状态
扩展服务头文件
消息服务接口文件
struct neroom::tagNERoomKitOptions NERoomKitOptions
组件初始化配置
struct neroom::tagNEServerConfig NEServerConfig
私有化配置
enum tagNERoomNetworkType { kConnectionUnknown=0, kConnectionEthernet=1, kConnectionWifi=2, kConnection2G=3, kConnection3G=4, kConnection4G=5, kConnectionNone=6 } NENetworkType
网络类型
struct neroom::tagNEWhiteboardServerConfig NEWhiteboardServerConfig
白板服务器配置
struct neroom::tagNEDomainItem NEDomainItem
域名条目
struct tagNESDKVersions { std::string imVersion; std::string rtcVersion; std::string whiteboardVersion; std::string roomKitVersion; } NESDKVersions
版本信息
NELogLevel
日志等级
struct neroom::tagNEDomainInfo NEDomainInfo
可用域名结果
enum class tagNERoomLanguage { kNEAutomatic, kNEChinese, kNEEnglish, kNEJapanese, } NERoomLanguage
语言类型
struct neroom::tagNERoomKitServerConfig NERoomKitServerConfig
RoomKit 服务器配置
struct neroom::tagNEIMServerConfig NEIMServerConfig
IM 服务器配置
std::function< void(int, const std::string &, const TResultParam &...)> NECallback
通用回调
struct neroom::tagNEDomainInfoResult NEDomainInfoResult
可用域名查询结果
struct neroom::tagNERtcServerConfig NERtcServerConfig
Rtc 服务器配置
struct neroom::tagNEWhiteBoardAppConfig NEWhiteBoardAppConfig
白板初始化配置
NOS服务头文件
全局事件监听头文件
房间服务接口头文件
std::list< NEDomainItem > domainList
std::list< std::string > httpDnsServerInterface
std::vector< std::string > nosAccelerateHostList
std::list< std::string > lbsBackupAddress
NEWhiteBoardAppConfig whiteBoardAppConfig
std::unordered_map< std::string, std::string > extras
NERoomKitServerConfig roomKitServerConfig
NEWhiteboardServerConfig whiteboardServerConfig
NERtcServerConfig rtcServerConfig