Search in sources :

Example 1 with PubSubPongMessage

use of org.bigbluebutton.common.messages.PubSubPongMessage in project bigbluebutton by bigbluebutton.

the class FromJsonDecoder method decodeMessage.

public IBigBlueButtonMessage decodeMessage(String message) {
    JsonParser parser = new JsonParser();
    JsonObject obj = (JsonObject) parser.parse(message);
    if (obj.has("header") && obj.has("payload")) {
        JsonObject header = (JsonObject) obj.get("header");
        if (header.has("name")) {
            String messageName = header.get("name").getAsString();
            if (PubSubPingMessage.PUBSUB_PING.equals(messageName)) {
                Gson gson = new Gson();
                PubSubPingMessage msg = gson.fromJson(message, PubSubPingMessage.class);
                return msg;
            } else if (PubSubPongMessage.PUBSUB_PONG.equals(messageName)) {
                Gson gson = new Gson();
                PubSubPongMessage msg = gson.fromJson(message, PubSubPongMessage.class);
                return msg;
            } else if (StartCustomPollRequestMessage.START_CUSTOM_POLL_REQUEST.equals(messageName)) {
                Gson gson = new Gson();
                StartCustomPollRequestMessage msg = gson.fromJson(message, StartCustomPollRequestMessage.class);
                return msg;
            } else {
                // System.out.println("Unknown message name=[" + messageName + "]");
                return null;
            }
        }
    }
    System.out.println("Invalid message format");
    return null;
}
Also used : PubSubPongMessage(org.bigbluebutton.common.messages.PubSubPongMessage) PubSubPingMessage(org.bigbluebutton.common.messages.PubSubPingMessage) JsonObject(com.google.gson.JsonObject) Gson(com.google.gson.Gson) StartCustomPollRequestMessage(org.bigbluebutton.common.messages.StartCustomPollRequestMessage) JsonParser(com.google.gson.JsonParser)

Example 2 with PubSubPongMessage

use of org.bigbluebutton.common.messages.PubSubPongMessage in project bigbluebutton by bigbluebutton.

the class BbbAppsIsKeepAliveHandler method processBbbAppsIsAliveMessage.

private void processBbbAppsIsAliveMessage(String json) {
    IBigBlueButtonMessage msg = decoder.decodeMessage(json);
    if (msg != null) {
        PubSubPongMessage m = (PubSubPongMessage) msg;
        monitorService.handleKeepAliveMessage(m.payload.system, m.payload.timestamp);
    }
}
Also used : PubSubPongMessage(org.bigbluebutton.common.messages.PubSubPongMessage) IBigBlueButtonMessage(org.bigbluebutton.common.messages.IBigBlueButtonMessage)

Example 3 with PubSubPongMessage

use of org.bigbluebutton.common.messages.PubSubPongMessage in project bigbluebutton by bigbluebutton.

the class MeetingMessageHandler method handleMessage.

public void handleMessage(String pattern, String channel, String message) {
    JsonParser parser = new JsonParser();
    JsonObject obj = (JsonObject) parser.parse(message);
    if (channel.equalsIgnoreCase(MessagingConstants.FROM_MEETING_CHANNEL)) {
        if (obj.has("header") && obj.has("payload")) {
            JsonObject header = (JsonObject) obj.get("header");
            JsonObject payload = (JsonObject) obj.get("payload");
            if (header.has("name")) {
                String messageName = header.get("name").getAsString();
                if (MessagingConstants.MEETING_STARTED_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new MeetingStarted(meetingId));
                    }
                } else if (MessagingConstants.MEETING_ENDED_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new MeetingEnded(meetingId));
                    }
                } else if (MessagingConstants.MEETING_DESTROYED_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    log.info("Received a meeting destroyed message for meeting id=[{}]", meetingId);
                    for (MessageListener listener : listeners) {
                        listener.handle(new MeetingDestroyed(meetingId));
                    }
                } else if (CreateBreakoutRoomRequest.NAME.equals(messageName)) {
                    CreateBreakoutRoomRequest msg = new Gson().fromJson(message, CreateBreakoutRoomRequest.class);
                    for (MessageListener listener : listeners) {
                        listener.handle(new CreateBreakoutRoom(msg.payload.breakoutMeetingId, msg.payload.parentMeetingId, msg.payload.name, msg.payload.sequence, msg.payload.voiceConfId, msg.payload.viewerPassword, msg.payload.moderatorPassword, msg.payload.durationInMinutes, msg.payload.sourcePresentationId, msg.payload.sourcePresentationSlide, msg.payload.record));
                    }
                } else if (EndBreakoutRoomRequest.NAME.equals(messageName)) {
                    EndBreakoutRoomRequest msg = new Gson().fromJson(message, EndBreakoutRoomRequest.class);
                    log.info("Received end breakout room request message for breakout meeting id=[{}]", msg.payload.meetingId);
                    for (MessageListener listener : listeners) {
                        listener.handle(new EndBreakoutRoom(msg.payload.meetingId));
                    }
                }
            }
        }
    } else if (channel.equalsIgnoreCase(MessagingConstants.FROM_SYSTEM_CHANNEL)) {
        if (obj.has("header") && obj.has("payload")) {
            JsonObject header = (JsonObject) obj.get("header");
            JsonObject payload = (JsonObject) obj.get("payload");
            if (header.has("name")) {
                String messageName = header.get("name").getAsString();
                IMessage rxMsg = null;
                if (PubSubPongMessage.PUBSUB_PONG.equals(messageName)) {
                    IBigBlueButtonMessage msg = decoder.decodeMessage(message);
                    if (msg != null) {
                        PubSubPongMessage m = (PubSubPongMessage) msg;
                        rxMsg = new KeepAliveReply(m.payload.system, m.payload.timestamp);
                    }
                }
                if (rxMsg != null) {
                    for (MessageListener listener : listeners) {
                        listener.handle(rxMsg);
                    }
                }
            }
        }
    } else if (channel.equalsIgnoreCase(MessagingConstants.FROM_USERS_CHANNEL)) {
        if (obj.has("header") && obj.has("payload")) {
            JsonObject header = (JsonObject) obj.get("header");
            JsonObject payload = (JsonObject) obj.get("payload");
            if (header.has("name")) {
                String messageName = header.get("name").getAsString();
                if (MessagingConstants.USER_JOINED_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    JsonObject user = (JsonObject) payload.get("user");
                    String userid = user.get("userid").getAsString();
                    String externuserid = user.get("extern_userid").getAsString();
                    String username = user.get("name").getAsString();
                    String role = user.get("role").getAsString();
                    String avatarURL = user.get("avatarURL").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new UserJoined(meetingId, userid, externuserid, username, role, avatarURL));
                    }
                } else if (MessagingConstants.USER_STATUS_CHANGE_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    String userid = payload.get("userid").getAsString();
                    String status = payload.get("status").getAsString();
                    String value = payload.get("value").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new UserStatusChanged(meetingId, userid, status, value));
                    }
                } else if (MessagingConstants.USER_LEFT_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    JsonObject user = (JsonObject) payload.get("user");
                    String userid = user.get("userid").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new UserLeft(meetingId, userid));
                    }
                } else if (MessagingConstants.USER_JOINED_VOICE_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    JsonObject user = (JsonObject) payload.get("user");
                    String userid = user.get("userid").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new UserJoinedVoice(meetingId, userid));
                    }
                } else if (MessagingConstants.USER_LEFT_VOICE_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    JsonObject user = (JsonObject) payload.get("user");
                    String userid = user.get("userid").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new UserLeftVoice(meetingId, userid));
                    }
                } else if (MessagingConstants.USER_LISTEN_ONLY_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    String userid = payload.get("userid").getAsString();
                    Boolean listenOnly = payload.get("listen_only").getAsBoolean();
                    for (MessageListener listener : listeners) {
                        listener.handle(new UserListeningOnly(meetingId, userid, listenOnly));
                    }
                } else if (MessagingConstants.USER_SHARE_WEBCAM_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    String userid = payload.get("userid").getAsString();
                    String stream = payload.get("stream").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new UserSharedWebcam(meetingId, userid, stream));
                    }
                } else if (MessagingConstants.USER_UNSHARE_WEBCAM_EVENT.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get("meeting_id").getAsString();
                    String userid = payload.get("userid").getAsString();
                    String stream = payload.get("stream").getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new UserUnsharedWebcam(meetingId, userid, stream));
                    }
                } else if (SendStunTurnInfoRequestMessage.SEND_STUN_TURN_INFO_REQUEST_MESSAGE.equalsIgnoreCase(messageName)) {
                    String meetingId = payload.get(Constants.MEETING_ID).getAsString();
                    String requesterId = payload.get(Constants.REQUESTER_ID).getAsString();
                    for (MessageListener listener : listeners) {
                        listener.handle(new StunTurnInfoRequested(meetingId, requesterId));
                    }
                }
            }
        }
    }
}
Also used : UserLeftVoice(org.bigbluebutton.api.messaging.messages.UserLeftVoice) MeetingStarted(org.bigbluebutton.api.messaging.messages.MeetingStarted) UserJoined(org.bigbluebutton.api.messaging.messages.UserJoined) CreateBreakoutRoom(org.bigbluebutton.api.messaging.messages.CreateBreakoutRoom) UserJoinedVoice(org.bigbluebutton.api.messaging.messages.UserJoinedVoice) JsonObject(com.google.gson.JsonObject) Gson(com.google.gson.Gson) EndBreakoutRoom(org.bigbluebutton.api.messaging.messages.EndBreakoutRoom) UserUnsharedWebcam(org.bigbluebutton.api.messaging.messages.UserUnsharedWebcam) EndBreakoutRoomRequest(org.bigbluebutton.messages.EndBreakoutRoomRequest) CreateBreakoutRoomRequest(org.bigbluebutton.messages.CreateBreakoutRoomRequest) JsonParser(com.google.gson.JsonParser) UserListeningOnly(org.bigbluebutton.api.messaging.messages.UserListeningOnly) MeetingDestroyed(org.bigbluebutton.api.messaging.messages.MeetingDestroyed) UserLeft(org.bigbluebutton.api.messaging.messages.UserLeft) IMessage(org.bigbluebutton.api.messaging.messages.IMessage) UserStatusChanged(org.bigbluebutton.api.messaging.messages.UserStatusChanged) UserSharedWebcam(org.bigbluebutton.api.messaging.messages.UserSharedWebcam) MeetingEnded(org.bigbluebutton.api.messaging.messages.MeetingEnded) PubSubPongMessage(org.bigbluebutton.common.messages.PubSubPongMessage) KeepAliveReply(org.bigbluebutton.api.messaging.messages.KeepAliveReply) IBigBlueButtonMessage(org.bigbluebutton.common.messages.IBigBlueButtonMessage)

Example 4 with PubSubPongMessage

use of org.bigbluebutton.common.messages.PubSubPongMessage in project bigbluebutton by bigbluebutton.

the class ToJsonEncoder method encodePubSubPongMessage.

public String encodePubSubPongMessage(String system, Long timestamp) {
    PubSubPongMessage m = new PubSubPongMessage();
    MessageHeader header = new MessageHeader();
    PubSubPingMessagePayload payload = new PubSubPingMessagePayload();
    header.name = PubSubPongMessage.PUBSUB_PONG;
    header.timestamp = System.nanoTime();
    payload.system = system;
    payload.timestamp = timestamp;
    m.header = header;
    m.payload = payload;
    Gson gson = new Gson();
    return gson.toJson(m);
}
Also used : PubSubPongMessage(org.bigbluebutton.common.messages.PubSubPongMessage) Gson(com.google.gson.Gson) MessageHeader(org.bigbluebutton.common.messages.MessageHeader) PubSubPingMessagePayload(org.bigbluebutton.common.messages.payload.PubSubPingMessagePayload)

Aggregations

PubSubPongMessage (org.bigbluebutton.common.messages.PubSubPongMessage)4 Gson (com.google.gson.Gson)3 JsonObject (com.google.gson.JsonObject)2 JsonParser (com.google.gson.JsonParser)2 IBigBlueButtonMessage (org.bigbluebutton.common.messages.IBigBlueButtonMessage)2 CreateBreakoutRoom (org.bigbluebutton.api.messaging.messages.CreateBreakoutRoom)1 EndBreakoutRoom (org.bigbluebutton.api.messaging.messages.EndBreakoutRoom)1 IMessage (org.bigbluebutton.api.messaging.messages.IMessage)1 KeepAliveReply (org.bigbluebutton.api.messaging.messages.KeepAliveReply)1 MeetingDestroyed (org.bigbluebutton.api.messaging.messages.MeetingDestroyed)1 MeetingEnded (org.bigbluebutton.api.messaging.messages.MeetingEnded)1 MeetingStarted (org.bigbluebutton.api.messaging.messages.MeetingStarted)1 UserJoined (org.bigbluebutton.api.messaging.messages.UserJoined)1 UserJoinedVoice (org.bigbluebutton.api.messaging.messages.UserJoinedVoice)1 UserLeft (org.bigbluebutton.api.messaging.messages.UserLeft)1 UserLeftVoice (org.bigbluebutton.api.messaging.messages.UserLeftVoice)1 UserListeningOnly (org.bigbluebutton.api.messaging.messages.UserListeningOnly)1 UserSharedWebcam (org.bigbluebutton.api.messaging.messages.UserSharedWebcam)1 UserStatusChanged (org.bigbluebutton.api.messaging.messages.UserStatusChanged)1 UserUnsharedWebcam (org.bigbluebutton.api.messaging.messages.UserUnsharedWebcam)1