Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package com.netease.nim.server.sdk.rtc.room;

import com.netease.nim.server.sdk.rtc.RtcResult;
import com.netease.nim.server.sdk.rtc.room.request.RtcCreateRoomRequest;
import com.netease.nim.server.sdk.rtc.room.request.RtcGetRoomByCidRequest;
import com.netease.nim.server.sdk.rtc.room.request.RtcGetRoomByCnameRequest;
import com.netease.nim.server.sdk.rtc.room.request.*;
import com.netease.nim.server.sdk.rtc.room.response.RtcCreateRoomResponse;
import com.netease.nim.server.sdk.rtc.room.response.RtcGetRoomResponse;
import com.netease.nim.server.sdk.rtc.room.response.RtcListRoomMembersResponse;

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

RtcResult<RtcGetRoomResponse> getRoomByCname(RtcGetRoomByCnameRequest request);

RtcResult<RtcListRoomMembersResponse> listRoomMembersV2(RtcListRoomMembersRequestV2 request);

RtcResult<RtcListRoomMembersResponse> listRoomMembersV3(RtcListRoomMembersRequestV3 request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
import com.netease.nim.server.sdk.core.YunxinApiResponse;
import com.netease.nim.server.sdk.core.http.HttpMethod;
import com.netease.nim.server.sdk.rtc.RtcResult;
import com.netease.nim.server.sdk.rtc.room.request.RtcCreateRoomRequest;
import com.netease.nim.server.sdk.rtc.room.request.RtcGetRoomByCidRequest;
import com.netease.nim.server.sdk.rtc.room.request.RtcGetRoomByCnameRequest;
import com.netease.nim.server.sdk.rtc.room.request.*;
import com.netease.nim.server.sdk.rtc.room.response.RtcCreateRoomResponse;
import com.netease.nim.server.sdk.rtc.room.response.RtcGetRoomResponse;
import com.netease.nim.server.sdk.rtc.room.response.RtcListRoomMembersResponse;

import java.util.HashMap;
import java.util.Map;
Expand Down Expand Up @@ -88,4 +87,60 @@ public RtcResult<RtcGetRoomResponse> getRoomByCname(RtcGetRoomByCnameRequest req
}
return new RtcResult<>(response.getEndpoint(), code, httpCode, requestId, response.getTraceId(), msg, getRoomResponse);
}

@Override
public RtcResult<RtcListRoomMembersResponse> listRoomMembersV2(RtcListRoomMembersRequestV2 request) {
String path = RtcRoomUrlContext.LIST_MEMBERS_V2.replace("{cid}", String.valueOf(request.getCid()));
if (request.getUid() != null) {
path += "/" + request.getUid();
}
Map<String, String> queryString = new HashMap<>();
if (request.getUserRole() != null) {
queryString.put("userRole", request.getUserRole().toString());
}
YunxinApiResponse response = httpClient.executeJson(HttpMethod.GET, RtcRoomUrlContext.LIST_MEMBERS_V2, path, queryString, null);
int httpCode = response.getHttpCode();
int code = 0;
String requestId = null;
String msg;
RtcListRoomMembersResponse listRoomMembersResponse = null;
try {
listRoomMembersResponse = JSONObject.parseObject(response.getData(), RtcListRoomMembersResponse.class);
code = listRoomMembersResponse.getCode();
requestId = listRoomMembersResponse.getRequestId();
msg = listRoomMembersResponse.getErrmsg();
} catch (Exception e) {
msg = response.getData();
}
return new RtcResult<>(response.getEndpoint(), code, httpCode, requestId, response.getTraceId(), msg, listRoomMembersResponse);
}

@Override
public RtcResult<RtcListRoomMembersResponse> listRoomMembersV3(RtcListRoomMembersRequestV3 request) {
Map<String, String> queryString = new HashMap<>();
queryString.put("cname", request.getCname());
Number uid = request.getUid();
if (uid != null) {
queryString.put("uid", uid.toString());
}
Number userRole = request.getUserRole();
if (userRole != null) {
queryString.put("userRole", userRole.toString());
}
YunxinApiResponse response = httpClient.executeJson(HttpMethod.GET, RtcRoomUrlContext.LIST_MEMBERS_V3, queryString, null);
int httpCode = response.getHttpCode();
int code = 0;
String requestId = null;
String msg;
RtcListRoomMembersResponse listRoomMembersResponse = null;
try {
listRoomMembersResponse = JSONObject.parseObject(response.getData(), RtcListRoomMembersResponse.class);
code = listRoomMembersResponse.getCode();
requestId = listRoomMembersResponse.getRequestId();
msg = listRoomMembersResponse.getErrmsg();
} catch (Exception e) {
msg = response.getData();
}
return new RtcResult<>(response.getEndpoint(), code, httpCode, requestId, response.getTraceId(), msg, listRoomMembersResponse);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,8 @@ public class RtcRoomUrlContext {
static final String GET_ROOM_BY_CID = "/v2/api/rooms/{cid}";

static final String GET_ROOM_BY_CNAME = "/v3/api/rooms";

static final String LIST_MEMBERS_V2 = "/v2/api/rooms/{cid}/members";

static final String LIST_MEMBERS_V3 = "/v3/api/rooms/members";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.netease.nim.server.sdk.rtc.room.request;
/**
* Created by DevDengChao on 2025/11/07
*
* See https://doc.yunxin.163.com/nertc/server-apis/jUzODcwODE?platform=server
*/
public class RtcListRoomMembersRequestV2 {
private Long cid;
private Number uid;
private Number userRole;

public Long getCid() {
return cid;
}

public void setCid(Long cid) {
this.cid = cid;
}

public Number getUid() {
return uid;
}

public void setUid(Number uid) {
this.uid = uid;
}

public Number getUserRole() {
return userRole;
}

public void setUserRole(Number userRole) {
this.userRole = userRole;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.netease.nim.server.sdk.rtc.room.request;
/**
* Created by DevDengChao on 2025/11/07
*
* See https://doc.yunxin.163.com/nertc/server-apis/jUzODcwODE?platform=server
*/
public class RtcListRoomMembersRequestV3 {
private String cname;
private Number uid;
private Number userRole;

public String getCname() {
return cname;
}

public void setCname(String cname) {
this.cname = cname;
}

public Number getUid() {
return uid;
}

public void setUid(Number uid) {
this.uid = uid;
}

public Number getUserRole() {
return userRole;
}

public void setUserRole(Number userRole) {
this.userRole = userRole;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package com.netease.nim.server.sdk.rtc.room.response;

import java.util.List;

public class RtcListRoomMembersResponse {
private String cname;
private Long cid;
private Integer total;
private List<RtcRoomMember> members;
private int code;
private String requestId ;
private String errmsg;

public String getCname() {
return cname;
}

public void setCname(String cname) {
this.cname = cname;
}

public Long getCid() {
return cid;
}

public void setCid(Long cid) {
this.cid = cid;
}

public Integer getTotal() {
return total;
}

public void setTotal(Integer total) {
this.total = total;
}

public List<RtcRoomMember> getMembers() {
return members;
}

public void setMembers(List<RtcRoomMember> members) {
this.members = members;
}

public int getCode() {
return code;
}

public void setCode(int code) {
this.code = code;
}

public String getRequestId() {
return requestId;
}

public void setRequestId(String requestId) {
this.requestId = requestId;
}

public String getErrmsg() {
return errmsg;
}

public void setErrmsg(String errmsg) {
this.errmsg = errmsg;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.netease.nim.server.sdk.rtc.room.response;

/**
*
* See https://doc.yunxin.163.com/interactive-streaming/outdated_articles/zY5OTk5NTM?platform=client
*/
public class RtcRoomMember {
private Long uid;
private Long starttime;
private Integer userRole;

public Long getUid() {
return uid;
}

public void setUid(Long uid) {
this.uid = uid;
}

public Long getStarttime() {
return starttime;
}

public void setStarttime(Long starttime) {
this.starttime = starttime;
}

public Integer getUserRole() {
return userRole;
}

public void setUserRole(Integer userRole) {
this.userRole = userRole;
}
}
Loading