Capturing Changes In A Room As An Event
Rooms raise an event whenever there is a change to the room. Changes with room properties, change of room members (joining and leaving), and change of room owner will trigger this event.
room.SetOnRoomChange(func(roomID string, memberIDs []string, props map[string]interface{}) {
logger.Debug("There has been a change in the room %s", roomID)
})
Capturing The Event On Room Owner Change
A room has an owner (The client that created the room or automatically elected member of the room). You may capture the event that is raised when the owner changes.
room.SetOnRoomOwnerChange(func(params interface{}) {
roomData := params.(map[string]string)
roomID := roomData["string"]
roomOWnerUID := roomData["ownerID"]
logger.Debug("The owner of the room %s has changed to %s", roomID, roomOwnerUID)
})
Capturing The Event On Room Property Change
The event is raised when room properties are changed.
room.SetOnRoomPropertyUpdate(func(params interface{}) {
roomData := params.(map[string]interface{})
roomID := roomData["roomID"].(string)
properties := roomData.["properties"].(interface{}).(map[string]interface{})
logger.Debug("Room %s has detect change in its properties %v", roomID, properties)
})
Capturing The Event On Room Destruction
The event is raised when a room has been deleted from the server.
room.SetOnRoomDiscard(func(roomID string) {
logger.Debug("Room %s has been discarded", roomID)
})