Question

I have implemented a function from the client part that calls the following function in the bigbluebutton-apps participant service

public void modEndMeeting(String roomName){
    roomsManager.removeRoom(roomName);
}

Which calls a function that does the following

Gson gson = new Gson();
messagingService.send(MessagingConstants.SYSTEM_CHANNEL, gson.toJson(map));

And on the bigbluebutton-web part the following code is ran

listener.userLeft(meetingId, internalUserId);

And all that code does is place the meeting on the garbage collection list and does not end it right away.

The correct way to do it is to call the function end defined in ApiController.groovy.

I can do that buy generating an HTTP request. and sending the correct parameter. But I do not want to follow that approach

Is there any way that i can connect or return an instance of from which i can call the function end defined in ApiController.groovy that has an instance of a class called meetingService that actually owns the meeting ?

I have tried to make meetingService a singleton but that did not work. I have also made the list that owns in the meeting of meetingService static. That also did not work

Here is a brief structure of meetingService

private final ConcurrentMap<String, Meeting> meetings;  

This is a list that houses the meetings

Any ideas or suggestions ??

Was it helpful?

Solution

And http request would be the only way to close a meeting from the APIcontroller.

An other way would be to expensive. And it would decreasing the timer from 60 000 to like 1000 in the ExpiredMeetingCleanupTimer.java class

Or you can place a listener in the Apicontroller.groovy and send a redis message.

The thing to do would be to mark the meeting as closed on the red5 part and kicking anyone trying to join it, until the web part does the trick and ends the meeting.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top