Skip to content

Commit e54008c

Browse files
authored
Merge pull request #535 from qrtc/features/rtc_add_test
增加房间创建和删除逻辑
2 parents bdac6b3 + 93be358 commit e54008c

File tree

14 files changed

+337
-29
lines changed

14 files changed

+337
-29
lines changed

src/main/java/com/qiniu/rtc/QRTC.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
package com.qiniu.rtc;
22

3+
import com.qiniu.common.QiniuException;
4+
import com.qiniu.http.Response;
5+
import com.qiniu.rtc.model.AppParam;
6+
import com.qiniu.rtc.model.AppResult;
7+
import com.qiniu.rtc.model.QRTCResult;
8+
import com.qiniu.rtc.service.AppService;
9+
import com.qiniu.util.Auth;
10+
import com.qiniu.util.Json;
11+
import com.qiniu.util.StringUtils;
12+
313
import java.util.Map;
414
import java.util.concurrent.ConcurrentHashMap;
515

@@ -39,6 +49,55 @@ public static QRTCClient init(String accessKey, String secretKey, String appId)
3949
return holder.get(appId);
4050
}
4151

52+
53+
/**
54+
* 创建app
55+
*
56+
* @param appParam APP创建参数
57+
* @return
58+
* @throws QiniuException
59+
*/
60+
public static QRTCResult<AppResult> createApp(AppParam appParam, String accessKey, String secretKey) throws QiniuException {
61+
Response response = null;
62+
try {
63+
response = fetchCreateApp(appParam, accessKey, secretKey);
64+
return formatCreateAppResult(response);
65+
} finally {
66+
// 释放资源
67+
if (response != null) response.close();
68+
}
69+
}
70+
71+
/**
72+
* 结果格式化
73+
*
74+
* @param response
75+
* @return
76+
* @throws QiniuException
77+
*/
78+
private static QRTCResult<AppResult> formatCreateAppResult(Response response) throws QiniuException {
79+
if (null == response || StringUtils.isNullOrEmpty(response.bodyString())) {
80+
return QRTCResult.fail(-1, "result is null");
81+
}
82+
AppResult t = Json.decode(response.bodyString(), AppResult.class);
83+
return QRTCResult.success(response.statusCode, t);
84+
}
85+
86+
/**
87+
* 创建请求处理
88+
*
89+
* @param appParam
90+
* @param accessKey
91+
* @param secretKey
92+
* @return
93+
* @throws QiniuException
94+
*/
95+
private static Response fetchCreateApp(AppParam appParam, String accessKey, String secretKey) throws QiniuException {
96+
AppService appService = new AppService(Auth.create(accessKey, secretKey));
97+
return appService.createApp(appParam);
98+
}
99+
100+
42101
/**
43102
* 根据appId 获取当前的client
44103
*

src/main/java/com/qiniu/rtc/QRTCClient.java

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -55,22 +55,6 @@ private void initService(Auth auth) {
5555

5656
/////////////////////////app service//////////////////////////////////////
5757

58-
/**
59-
* 创建app
60-
*
61-
* @param appParam
62-
* @return
63-
* @throws QiniuException
64-
*/
65-
public QRTCResult<AppResult> createApp(final AppParam appParam) throws QiniuException {
66-
ServiceCallFunc func = new ServiceCallFunc() {
67-
@Override
68-
public Response call() throws QiniuException {
69-
return appService.createApp(appParam);
70-
}
71-
};
72-
return buildResult(func, AppResult.class);
73-
}
7458

7559
/**
7660
* 获取当前绑定的client的app信息
@@ -123,6 +107,40 @@ public Response call() throws QiniuException {
123107

124108
/////////////////////////room service//////////////////////////////////////
125109

110+
/**
111+
* 创建房间
112+
*
113+
* @param roomParam
114+
* @return
115+
* @throws QiniuException
116+
*/
117+
public QRTCResult<RoomResult> createRoom(final RoomParam roomParam) throws QiniuException {
118+
ServiceCallFunc func = new ServiceCallFunc() {
119+
@Override
120+
public Response call() throws QiniuException {
121+
return roomService.createRoom(appId, roomParam);
122+
}
123+
};
124+
return buildResult(func, RoomResult.class);
125+
}
126+
127+
/**
128+
* 删除房间
129+
*
130+
* @param roomName
131+
* @return
132+
* @throws QiniuException
133+
*/
134+
public QRTCResult<RoomResult> deleteRoom(final String roomName) throws QiniuException {
135+
ServiceCallFunc func = new ServiceCallFunc() {
136+
@Override
137+
public Response call() throws QiniuException {
138+
return roomService.deleteRoom(appId, roomName);
139+
}
140+
};
141+
return buildResult(func, RoomResult.class);
142+
}
143+
126144
/**
127145
* 获取房间内的所有用户
128146
*
@@ -287,7 +305,7 @@ public QRTCResult<MergeResult> updateMergeTrack(final MergeTrackParam mergeTrack
287305
ServiceCallFunc updateMergeTrackFunc = new ServiceCallFunc() {
288306
@Override
289307
public Response call() throws QiniuException {
290-
UrlParam mergeTrackUrlParam = UrlParam.builder().appId(appId).roomName(roomName).jobId(jobId).build();
308+
UrlParam mergeTrackUrlParam = UrlParam.builder().appId(appId).roomName(roomName).jobId(jobId).build();
291309
return mergeService.updateMergeTrack(mergeTrackParam, mergeTrackUrlParam);
292310
}
293311
};
@@ -308,7 +326,7 @@ public QRTCResult<MergeResult> updateMergeWatermarks(final WatermarksParam water
308326
ServiceCallFunc updateMergeWatermarksFunc = new ServiceCallFunc() {
309327
@Override
310328
public Response call() throws QiniuException {
311-
UrlParam mergeWatermarksUrlParam = UrlParam.builder().appId(appId).roomName(roomName).jobId(jobId).build();
329+
UrlParam mergeWatermarksUrlParam = UrlParam.builder().appId(appId).roomName(roomName).jobId(jobId).build();
312330
return mergeService.updateMergeWatermarks(watermarksParam, mergeWatermarksUrlParam);
313331
}
314332
};

src/main/java/com/qiniu/rtc/RtcAppManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,4 @@ public Response updateApp(String appId, String hub, String title, int maxUsers,
121121
return client.post(url, body, headers, Client.JsonMime);
122122
}
123123

124-
}
124+
}

src/main/java/com/qiniu/rtc/RtcRoomManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,4 @@ public String getRoomToken(String appId, String roomName, String userId,
9999
return auth.signRoomToken(json);
100100
}
101101

102-
}
102+
}

src/main/java/com/qiniu/rtc/model/AppResult.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class AppResult {
1111
private int maxUsers;
1212
private boolean noAutoKickUser;
1313
private String createdAt;
14-
private String UpdatedAt;
14+
private String updatedAt;
1515
private String error;
1616
private String status;
1717

src/main/java/com/qiniu/rtc/model/ForwardParam.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import lombok.Data;
44

55
import java.util.List;
6-
import java.util.Map;
76

87
/**
98
* 转推的参数
@@ -13,14 +12,26 @@ public class ForwardParam {
1312
private String id;
1413
private String publishUrl;
1514
private String playerId;
16-
private List<Map<String, String>> tracks;
15+
private List<TrackInfo> tracks;
1716

1817
public ForwardParam(String id, String publishUrl, String playerId) {
1918
this.id = id;
2019
this.publishUrl = publishUrl;
2120
this.playerId = playerId;
2221
}
2322

23+
@Data
24+
public static class TrackInfo {
25+
private String trackId;
26+
27+
public TrackInfo(String trackId) {
28+
this.trackId = trackId;
29+
}
30+
31+
public TrackInfo() {
32+
}
33+
}
34+
2435
public ForwardParam() {
2536
}
2637
}

src/main/java/com/qiniu/rtc/model/ForwardResult.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44

55
@Data
66
public class ForwardResult {
7+
/**
8+
* 单路转推状态
9+
*/
710
private String status;
8-
private String id;//forward id
11+
/**
12+
* 单路转推ID
13+
*/
14+
private String id;
915
}

src/main/java/com/qiniu/rtc/model/MergeTrackParam.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@ public static class MergeTrack {
2121
private String stretchMode;
2222
private boolean supportSei = false;
2323
}
24-
}
24+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// codebeat:disable[TOO_MANY_IVARS]
2+
package com.qiniu.rtc.model;
3+
4+
import lombok.Data;
5+
6+
@Data
7+
public class RoomParam {
8+
private String roomName;
9+
private int maxUsers;
10+
private int autoCloseTtlS;
11+
private int noEntreTtlS;
12+
private boolean openRoom;
13+
}

src/main/java/com/qiniu/rtc/model/RoomResult.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class RoomResult {
1414
private List<String> rooms;
1515
private boolean end;
1616
private int offset;
17+
private String roomId;
1718

1819
@Data
1920
public static class UserInfo {

0 commit comments

Comments
 (0)