0

I want to implement scalable signaling server. I use kurento client, kurento media server to implement N:M group call with spring boot signaling server. I understand the tutorial docs, and checked it works well. However, I have to consider scale-out problems in my project, so I thought it will be nice to save session info in redis so that multiple was can share room info, sessions info. But I have no idea to save MediaPipeline object or the object info to redis. Is it possible to use jpa with redis?

this is Room class

public class Room implements Closeable {
    private final Logger log = LoggerFactory.getLogger(Room.class);

    private final ConcurrentMap<Long, UserSession> sessions = new ConcurrentHashMap<>();
    private final MediaPipeline pipeline;
    private final Long roomId;

this is UserSession class

public class UserSession implements Closeable {

    private final Logger log = LoggerFactory.getLogger(UserSession.class);

    private final Participant participant;

    private final WebSocketSession session;

    private final MediaPipeline pipeline;

    private final Long roomId;

    private final WebRtcEndpoint outgoingMedia;

    private final ConcurrentMap<Long, WebRtcEndpoint> incomingMedia = new ConcurrentHashMap<>();

I want my backend servers to share user session info and room info with media pipeline, but I don't know how to save these info to redis. Any ideas?

Foo
  • 1

0 Answers0