私有部署服务器版本使用方法

注意: 该页面的初始化流程仅适用于私有部署服务

私服服务是指,用户使用starRTC发布的免费服务端程序,运行在用户自己的服务器上,所有数据不经过starRTC,我们不承担非法数据的风险。

私有服务SDK不需要登录,starRTC的sdk不对用户的合法性进行校验,交给用户自己维护。初始化时省掉了登录服务url的设置。
此外,SDK可以通过API直接设置各项功能服务的服务地址。省去了原有的调度环节,可以更灵活的接入到中小型项目中。

使用方法:

1 初始化

因为不需要starRTC做用户合法性校验,所以无需从我方获取APPID,用户自己生成一个即可。
初始化步骤与正常版很相似,调用几个不同的api即可

XHCustomConfig *config = [[XHCustomConfig alloc] init];    
config.serverType = SERVER_TYPE_CUSTOM;
config.imServerURL = appConfig.messageHost;
config.chatRoomServerURL = appConfig.chatHost;
config.liveSrcServerURL = appConfig.uploadHost;
config.liveVdnServerURL = appConfig.downloadHost;
config.voipServerURL = appConfig.voipHost;
[config sdkInitForFree:UserId];

2 IM群组的新增API

可以从SDK的API中直接获取用户自己的群列表以及群信息(群成员列表和免打扰状态)
注意:下边两个API仅限私有部署服务时使用。

        [[XHClient sharedClient].groupManager queryGroupList:^(NSString *listInfo, NSError *error) {
NSArray *listArr = nil;
if (listInfo) {

}
}];

[[XHClient sharedClient].groupManager queryGroupInfo:self.groupID completion:^(NSString *listInfo, NSError *error) {
NSDictionary *dict = nil;
if (error == nil && listInfo) {
}

}];

3 IM聊天室的新增API

注意:下边三个API仅限私有部署服务时使用。

                  NSDictionary *infoDic = @{@"id":chatRoomID,
@"creator":UserId,
@"name":name
};
NSString *infoStr = [infoDic ilg_jsonString];
[[XHClient sharedClient].roomManager saveToList:UserId type:CHATROOM_LIST_TYPE_CHATROOM chatroomID:chatRoomID info:[infoStr ilg_URLEncode] completion:^(NSError *error) {

}];


[[XHClient sharedClient].roomManager queryChatroomList:UserId type:[NSString stringWithFormat:@"%d", CHATROOM_LIST_TYPE_CHATROOM] completion:^(NSString *listInfo, NSError *error) {
NSArray *listArr = nil;
if (listInfo) {
NSData *jsonData = [listInfo dataUsingEncoding:NSUTF8StringEncoding];
listArr = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:nil];
}

[weakSelf refreshListDidEnd:listArr];

}];

[[XHClient sharedClient].roomManager deleteFromChatroomList:chatRoomID completion:^( NSError *error) {

}];

4 视频会议的新增API

注意:下边三个API仅限私有部署服务时使用。

NSDictionary *infoDic = @{@"id":meetingID,
@"creator":UserId,
@"name":meetingItem.meetingName
};
NSString *infoStr = [infoDic ilg_jsonString];
[[XHClient sharedClient].meetingManager saveToList:UserId type:CHATROOM_LIST_TYPE_MEETING meetingId:meetingID info:[infoStr ilg_URLEncode] completion:^(NSError *error) {

}];


[[XHClient sharedClient].meetingManager queryMeetingList:@"" type:[NSString stringWithFormat:@"%d", CHATROOM_LIST_TYPE_MEETING] completion:^(NSString *listInfo, NSError *error) {
NSArray *listArr = nil;
if (listInfo) {
NSData *jsonData = [listInfo dataUsingEncoding:NSUTF8StringEncoding];
listArr = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:nil];
}

[weakSelf refreshListDidEnd:listArr];
}];

[[XHClient sharedClient].meetingManager deleteFromMeetingList: meetingID completion:^( NSError *error) {

}];

5 互动直播新增API

注意:下边三个API仅限私有部署服务时使用。

 NSDictionary *infoDic = @{@"id":liveID,
@"creator":UserId,
@"name":name
};
NSString *infoStr = [infoDic ilg_jsonString];
[[XHClient sharedClient].meetingManager saveToList:UserId type:CHATROOM_LIST_TYPE_LIVE meetingId:liveID info:[infoStr ilg_URLEncode] completion:^(NSError *error) {

}];

[[XHClient sharedClient].liveManager queryLiveList:@"" type:[NSString stringWithFormat:@"%d", CHATROOM_LIST_TYPE_LIVE] completion:^(NSString *listInfo, NSError *error) {
NSArray *listArr = nil;
if (listInfo) {
NSData *jsonData = [listInfo dataUsingEncoding:NSUTF8StringEncoding];
listArr = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:nil];
}

[weakSelf refreshListDidEnd:listArr];
}];

[[XHClient sharedClient].liveManager deleteFromLiveList:@"" type:[NSString stringWithFormat:@"%d", CHATROOM_LIST_TYPE_LIVE] completion:^(NSString *listInfo, NSError *error) {
NSArray *listArr = nil;
if (listInfo) {
NSData *jsonData = [listInfo dataUsingEncoding:NSUTF8StringEncoding];
listArr = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:nil];
}

[weakSelf refreshListDidEnd:listArr];
}];

[[XHClient sharedClient].liveManager deleteFromLiveList: liveID completion:^( NSError *error) {

}];