Skip to content

Commit 9af7561

Browse files
authored
Merge pull request #18 from DevDengChao/main
feat: list room members
2 parents 1008664 + 11911a7 commit 9af7561

File tree

7 files changed

+242
-6
lines changed

7 files changed

+242
-6
lines changed

src/main/java/com/netease/nim/server/sdk/rtc/room/IRtcRoomService.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package com.netease.nim.server.sdk.rtc.room;
22

33
import com.netease.nim.server.sdk.rtc.RtcResult;
4-
import com.netease.nim.server.sdk.rtc.room.request.RtcCreateRoomRequest;
5-
import com.netease.nim.server.sdk.rtc.room.request.RtcGetRoomByCidRequest;
6-
import com.netease.nim.server.sdk.rtc.room.request.RtcGetRoomByCnameRequest;
4+
import com.netease.nim.server.sdk.rtc.room.request.*;
75
import com.netease.nim.server.sdk.rtc.room.response.RtcCreateRoomResponse;
86
import com.netease.nim.server.sdk.rtc.room.response.RtcGetRoomResponse;
7+
import com.netease.nim.server.sdk.rtc.room.response.RtcListRoomMembersResponse;
98

109
/**
1110
* Created by caojiajun on 2025/6/12
@@ -17,4 +16,8 @@ public interface IRtcRoomService {
1716
RtcResult<RtcGetRoomResponse> getRoomByCid(RtcGetRoomByCidRequest request);
1817

1918
RtcResult<RtcGetRoomResponse> getRoomByCname(RtcGetRoomByCnameRequest request);
19+
20+
RtcResult<RtcListRoomMembersResponse> listRoomMembersV2(RtcListRoomMembersRequestV2 request);
21+
22+
RtcResult<RtcListRoomMembersResponse> listRoomMembersV3(RtcListRoomMembersRequestV3 request);
2023
}

src/main/java/com/netease/nim/server/sdk/rtc/room/RtcRoomService.java

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
import com.netease.nim.server.sdk.core.YunxinApiResponse;
66
import com.netease.nim.server.sdk.core.http.HttpMethod;
77
import com.netease.nim.server.sdk.rtc.RtcResult;
8-
import com.netease.nim.server.sdk.rtc.room.request.RtcCreateRoomRequest;
9-
import com.netease.nim.server.sdk.rtc.room.request.RtcGetRoomByCidRequest;
10-
import com.netease.nim.server.sdk.rtc.room.request.RtcGetRoomByCnameRequest;
8+
import com.netease.nim.server.sdk.rtc.room.request.*;
119
import com.netease.nim.server.sdk.rtc.room.response.RtcCreateRoomResponse;
1210
import com.netease.nim.server.sdk.rtc.room.response.RtcGetRoomResponse;
11+
import com.netease.nim.server.sdk.rtc.room.response.RtcListRoomMembersResponse;
1312

1413
import java.util.HashMap;
1514
import java.util.Map;
@@ -88,4 +87,60 @@ public RtcResult<RtcGetRoomResponse> getRoomByCname(RtcGetRoomByCnameRequest req
8887
}
8988
return new RtcResult<>(response.getEndpoint(), code, httpCode, requestId, response.getTraceId(), msg, getRoomResponse);
9089
}
90+
91+
@Override
92+
public RtcResult<RtcListRoomMembersResponse> listRoomMembersV2(RtcListRoomMembersRequestV2 request) {
93+
String path = RtcRoomUrlContext.LIST_MEMBERS_V2.replace("{cid}", String.valueOf(request.getCid()));
94+
if (request.getUid() != null) {
95+
path += "/" + request.getUid();
96+
}
97+
Map<String, String> queryString = new HashMap<>();
98+
if (request.getUserRole() != null) {
99+
queryString.put("userRole", request.getUserRole().toString());
100+
}
101+
YunxinApiResponse response = httpClient.executeJson(HttpMethod.GET, RtcRoomUrlContext.LIST_MEMBERS_V2, path, queryString, null);
102+
int httpCode = response.getHttpCode();
103+
int code = 0;
104+
String requestId = null;
105+
String msg;
106+
RtcListRoomMembersResponse listRoomMembersResponse = null;
107+
try {
108+
listRoomMembersResponse = JSONObject.parseObject(response.getData(), RtcListRoomMembersResponse.class);
109+
code = listRoomMembersResponse.getCode();
110+
requestId = listRoomMembersResponse.getRequestId();
111+
msg = listRoomMembersResponse.getErrmsg();
112+
} catch (Exception e) {
113+
msg = response.getData();
114+
}
115+
return new RtcResult<>(response.getEndpoint(), code, httpCode, requestId, response.getTraceId(), msg, listRoomMembersResponse);
116+
}
117+
118+
@Override
119+
public RtcResult<RtcListRoomMembersResponse> listRoomMembersV3(RtcListRoomMembersRequestV3 request) {
120+
Map<String, String> queryString = new HashMap<>();
121+
queryString.put("cname", request.getCname());
122+
Number uid = request.getUid();
123+
if (uid != null) {
124+
queryString.put("uid", uid.toString());
125+
}
126+
Number userRole = request.getUserRole();
127+
if (userRole != null) {
128+
queryString.put("userRole", userRole.toString());
129+
}
130+
YunxinApiResponse response = httpClient.executeJson(HttpMethod.GET, RtcRoomUrlContext.LIST_MEMBERS_V3, queryString, null);
131+
int httpCode = response.getHttpCode();
132+
int code = 0;
133+
String requestId = null;
134+
String msg;
135+
RtcListRoomMembersResponse listRoomMembersResponse = null;
136+
try {
137+
listRoomMembersResponse = JSONObject.parseObject(response.getData(), RtcListRoomMembersResponse.class);
138+
code = listRoomMembersResponse.getCode();
139+
requestId = listRoomMembersResponse.getRequestId();
140+
msg = listRoomMembersResponse.getErrmsg();
141+
} catch (Exception e) {
142+
msg = response.getData();
143+
}
144+
return new RtcResult<>(response.getEndpoint(), code, httpCode, requestId, response.getTraceId(), msg, listRoomMembersResponse);
145+
}
91146
}

src/main/java/com/netease/nim/server/sdk/rtc/room/RtcRoomUrlContext.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ public class RtcRoomUrlContext {
1010
static final String GET_ROOM_BY_CID = "/v2/api/rooms/{cid}";
1111

1212
static final String GET_ROOM_BY_CNAME = "/v3/api/rooms";
13+
14+
static final String LIST_MEMBERS_V2 = "/v2/api/rooms/{cid}/members";
15+
16+
static final String LIST_MEMBERS_V3 = "/v3/api/rooms/members";
1317
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.netease.nim.server.sdk.rtc.room.request;
2+
/**
3+
* Created by DevDengChao on 2025/11/07
4+
*
5+
* See https://doc.yunxin.163.com/nertc/server-apis/jUzODcwODE?platform=server
6+
*/
7+
public class RtcListRoomMembersRequestV2 {
8+
private Long cid;
9+
private Number uid;
10+
private Number userRole;
11+
12+
public Long getCid() {
13+
return cid;
14+
}
15+
16+
public void setCid(Long cid) {
17+
this.cid = cid;
18+
}
19+
20+
public Number getUid() {
21+
return uid;
22+
}
23+
24+
public void setUid(Number uid) {
25+
this.uid = uid;
26+
}
27+
28+
public Number getUserRole() {
29+
return userRole;
30+
}
31+
32+
public void setUserRole(Number userRole) {
33+
this.userRole = userRole;
34+
}
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.netease.nim.server.sdk.rtc.room.request;
2+
/**
3+
* Created by DevDengChao on 2025/11/07
4+
*
5+
* See https://doc.yunxin.163.com/nertc/server-apis/jUzODcwODE?platform=server
6+
*/
7+
public class RtcListRoomMembersRequestV3 {
8+
private String cname;
9+
private Number uid;
10+
private Number userRole;
11+
12+
public String getCname() {
13+
return cname;
14+
}
15+
16+
public void setCname(String cname) {
17+
this.cname = cname;
18+
}
19+
20+
public Number getUid() {
21+
return uid;
22+
}
23+
24+
public void setUid(Number uid) {
25+
this.uid = uid;
26+
}
27+
28+
public Number getUserRole() {
29+
return userRole;
30+
}
31+
32+
public void setUserRole(Number userRole) {
33+
this.userRole = userRole;
34+
}
35+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.netease.nim.server.sdk.rtc.room.response;
2+
3+
import java.util.List;
4+
5+
public class RtcListRoomMembersResponse {
6+
private String cname;
7+
private Long cid;
8+
private Integer total;
9+
private List<RtcRoomMember> members;
10+
private int code;
11+
private String requestId ;
12+
private String errmsg;
13+
14+
public String getCname() {
15+
return cname;
16+
}
17+
18+
public void setCname(String cname) {
19+
this.cname = cname;
20+
}
21+
22+
public Long getCid() {
23+
return cid;
24+
}
25+
26+
public void setCid(Long cid) {
27+
this.cid = cid;
28+
}
29+
30+
public Integer getTotal() {
31+
return total;
32+
}
33+
34+
public void setTotal(Integer total) {
35+
this.total = total;
36+
}
37+
38+
public List<RtcRoomMember> getMembers() {
39+
return members;
40+
}
41+
42+
public void setMembers(List<RtcRoomMember> members) {
43+
this.members = members;
44+
}
45+
46+
public int getCode() {
47+
return code;
48+
}
49+
50+
public void setCode(int code) {
51+
this.code = code;
52+
}
53+
54+
public String getRequestId() {
55+
return requestId;
56+
}
57+
58+
public void setRequestId(String requestId) {
59+
this.requestId = requestId;
60+
}
61+
62+
public String getErrmsg() {
63+
return errmsg;
64+
}
65+
66+
public void setErrmsg(String errmsg) {
67+
this.errmsg = errmsg;
68+
}
69+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.netease.nim.server.sdk.rtc.room.response;
2+
3+
/**
4+
*
5+
* See https://doc.yunxin.163.com/interactive-streaming/outdated_articles/zY5OTk5NTM?platform=client
6+
*/
7+
public class RtcRoomMember {
8+
private Long uid;
9+
private Long starttime;
10+
private Integer userRole;
11+
12+
public Long getUid() {
13+
return uid;
14+
}
15+
16+
public void setUid(Long uid) {
17+
this.uid = uid;
18+
}
19+
20+
public Long getStarttime() {
21+
return starttime;
22+
}
23+
24+
public void setStarttime(Long starttime) {
25+
this.starttime = starttime;
26+
}
27+
28+
public Integer getUserRole() {
29+
return userRole;
30+
}
31+
32+
public void setUserRole(Integer userRole) {
33+
this.userRole = userRole;
34+
}
35+
}

0 commit comments

Comments
 (0)