我正在创建一个用于学习目的的示例项目(稍后我将开发基于webrtc和kurento的项目),我正在使用Kurento媒体服务器,我修改了kurento服务器的教程并制作了一个示例出来的。
在Kurento Server的所有示例中,他们使用UserRegistry.java存储UserSession的对象,如下所示:
public class UserSession {
private static final Logger log = LoggerFactory.getLogger(UserSession.class);
private final String name;
private final WebSocketSession session;
private String sdpOffer;
private String callingTo;
private String callingFrom;
private WebRtcEndpoint webRtcEndpoint;
private WebRtcEndpoint playingWebRtcEndpoint;
private final List<IceCandidate> candidateList = new ArrayList<>();
public UserSession(WebSocketSession session, String name) {
this.session = session;
this.name = name;
}
public void sendMessage(JsonObject message) throws IOException {
log.debug("Sending message from user '{}': {}", name, message);
session.sendMessage(new TextMessage(message.toString()));
}
public String getSessionId() {
return session.getId();
}
public void setWebRtcEndpoint(WebRtcEndpoint webRtcEndpoint) {
this.webRtcEndpoint = webRtcEndpoint;
if (this.webRtcEndpoint != null) {
for (IceCandidate e : candidateList) {
this.webRtcEndpoint.addIceCandidate(e);
}
this.candidateList.clear();
}
}
public void addCandidate(IceCandidate candidate) {
if (this.webRtcEndpoint != null) {
this.webRtcEndpoint.addIceCandidate(candidate);
} else {
candidateList.add(candidate);
}
if (this.playingWebRtcEndpoint != null) {
this.playingWebRtcEndpoint.addIceCandidate(candidate);
}
}
public void clear() {
this.webRtcEndpoint = null;
this.candidateList.clear();
}
}
我有两个问题:
让我再谈谈第二个问题。我发现我可以运行Kurento-JavaScript-Client(我需要将它转换为浏览器版本然后我可以使用它。)仅在客户端(这样我就不需要后端服务器,即nodejs或者tomcat - 这是我的假设)。所以在这种情况下我将如何管理会话,或者我可以完全删除UserRegistry概念并使用其他方式。
谢谢&amp;此致