Skip to content

Commit

Permalink
Load ws url from config file (#14)
Browse files Browse the repository at this point in the history
Load ws url from BBB's settings.yml config file and some code cleanup

---------

Co-authored-by: timo <[email protected]>
  • Loading branch information
SamuelWei and tibroc authored Apr 25, 2024
1 parent a1d5b77 commit 318cee8
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 32 deletions.
4 changes: 4 additions & 0 deletions html-plugin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ For development purposes you can run the plugin locally from source:
plugins:
- name: RoomMediaPlugin
url: http://127.0.0.1:4701/static/RoomMediaPlugin.js
settings:
pairingWebsocketUrl: wss://your-bbb-server.org/hybrid/ws
```

_N.B.:_ Be aware that in this case the url is interpreted from the plugin in the browser,
Expand All @@ -55,6 +57,8 @@ public:
plugins:
- name: RoomMediaPlugin
url: <<PLUGIN_URL>>
settings:
pairingWebsocketUrl: wss://your-bbb-server.org/hybrid/ws
```
#### Hosting the Plugin on a BBB Server
Expand Down
14 changes: 7 additions & 7 deletions html-plugin/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion html-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"@types/react": "^18.2.13",
"@types/react-dom": "^18.2.6",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"bigbluebutton-html-plugin-sdk": "^0.0.26",
"bigbluebutton-html-plugin-sdk": "^0.0.46",
"path": "^0.12.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
Expand Down
3 changes: 0 additions & 3 deletions html-plugin/pluginConfig.json

This file was deleted.

30 changes: 9 additions & 21 deletions html-plugin/src/room-media-plugin/component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,41 +16,31 @@ export function RoomMediaPlugin({pluginUuid: uuid}: RoomMediaPluginProps) {
const [showModal, setShowModal] = useState<boolean>(false);
const pluginApi: PluginApi = BbbPluginSdk.getPluginApi(uuid);
const {data: currentUser} = pluginApi.useCurrentUser();
const {data: pluginSettings} = pluginApi.usePluginSettings();
const [inputValue, setInputValue] = useState('');
const [webSocket, setWebSocket] = useState<WebSocket | null>(null);
const [filteredLayout, setFilteredLayouts] = useState<Layout | null>(null);
const [roomConfig, setRoomConfig] = useState<Config | null>(null);
const [offerResponse, setOfferResponse] = useState<string | null>(null);
const [pairingPin, setPairingPin] = useState<string | null>(null);
const [roomJoinUrls, setRoomJoinUrls] = useState(null);
const [pluginConfig, setPluginConfig] = useState(null);
// const jsonExample: ResponseData = { "status": 200, "msg": "ok", "config": { "name": "HU Erwin Schr\u00f6dinger Zentrum 0101", "bbb_user_id": "asdfa", "bbb_user_name": "MediaSystem0101", "layouts": { "CHAT_LEFT_VIDEO_RIGHT": { "index": 0, "label": "Chat left, video right", "screens": { "left": { "bbb-join-parameters": { "enforceLayout": "participantsChatOnly", "userdata-bbb_display_notifications": false, "userdata-bbb_hide_nav_bar": true } }, "right": { "bbb-join-parameters": { "userdata-bbb_hide_actions_bar": true, "enforceLayout": "camerasOnly", "userdata-bbb_display_notifications": false, "userdata-bbb_auto_share_webcam": true, "userdata-bbb_listen_only_mode": false, "userdata-bbb_skip_check_audio": true, "userdata-bbb_skip_video_preview": true, "userdata-bbb_preferred_camera_profile": "high", "userdata-bbb_hide_nav_bar": true } } } }, "VIDEO_LEFT_PRESENTATION_RIGHT": { "index": 1, "label": "Video left, presentation right", "screens": { "left": { "bbb-join-parameters": { "userdata-bbb_hide_actions_bar": true, "enforceLayout": "camerasOnly", "userdata-bbb_display_notifications": false, "userdata-bbb_auto_share_webcam": true, "userdata-bbb_listen_only_mode": false, "userdata-bbb_skip_check_audio": true, "userdata-bbb_skip_video_preview": true, "userdata-bbb_preferred_camera_profile": "high", "userdata-bbb_hide_nav_bar": true } }, "right": { "bbb-join-parameters": { "userdata-bbb_self_view_disable": true, "enforceLayout": "presentationOnly", "userdata-bbb_display_notifications": false, "userdata-bbb_auto_share_webcam": true, "userdata-bbb_listen_only_mode": false, "userdata-bbb_skip_check_audio": true, "userdata-bbb_skip_video_preview": true, "userdata-bbb_hide_nav_bar": true, "userdata-bbb_hide_actions_bar": true } } } } } } };

// useEffect(() => {
// const fetchData = async () => {
// try {
// const response = await fetch('./pluginConfig.json');
// const configData = await response.json();
// console.log("config:", configData)
// setPluginConfig(configData);
// } catch (error) {
// console.error('Room Integration Plugin: Error fetching Config file:', error);
// }
// };

// fetchData();
// }, []);

const filterLayouts = (jsonData: ResponseData, index: number) => {
const layoutsArray = Object.values(jsonData.config.layouts);
const filteredLayout = layoutsArray.find((layout) => layout.index === index);
setFilteredLayouts(filteredLayout);
}

console.log('Plugin settings:', pluginSettings);

const createWebSocket = () => {
// const ws = new WebSocket(pluginConfig.websocketUrl);
const ws = new WebSocket("wss://davis.hrz.tu-chemnitz.de/hybrid/ws");

if (!pluginSettings || typeof pluginSettings.pairingWebsocketUrl !== 'string') {
console.error('Plugin settings or pairingWebsocketUrl URL not yet available');
return;
}

const ws = new WebSocket(pluginSettings.pairingWebsocketUrl);
ws.onopen = () => {
// Send user input to WebSocket
if (ws.readyState === WebSocket.OPEN) {
Expand Down Expand Up @@ -134,7 +124,6 @@ export function RoomMediaPlugin({pluginUuid: uuid}: RoomMediaPluginProps) {
role: "MODERATOR"
}
);
// const controlJoinUrl: string = "https://bbb3-dev.virtuos.uni-osnabrueck.de/bigbluebutton/api/join?fullName=Room+Integration&meetingID=random-6478495&password=mp&redirect=true&userID=bbb-room-integration&checksum=eb5a8c0685e922356794224c683c792f5d68fb3f"

const screenJoinUrls: { [key: string]: string } = {};

Expand All @@ -148,7 +137,6 @@ export function RoomMediaPlugin({pluginUuid: uuid}: RoomMediaPluginProps) {
role: 'MODERATOR'
};
screenJoinUrls[key] = await pluginApi.getJoinUrl(joinParametersMap);
// screenJoinUrls[key] = "https://bbb3-dev.virtuos.uni-osnabrueck.de/bigbluebutton/api/join?fullName=Room+Integration&meetingID=random-6478495&password=ap&redirect=true&userID=bbb-room-integration&checksum=b058fca6202700005c36675332c6ed760e8e3578";
})
);
const roomJoinUrls = {
Expand Down

0 comments on commit 318cee8

Please sign in to comment.