We want to create a way that a plugin can send data to other participants of same meeting.
The data model on server side should be something like:
dataChannel[meetingId][pluginName][channelName] = [] // array of messages
Data posted by a plugin in a meeting will be sent to other participants of the meeting;
This data will be scoped at plugin level, so "plugin A" only post to same plugin on other browsers;
This data will be recorded in a file similar to events.xml so it can be used for reports / integrations after the meeting;
Things to discuss:
allow server admin to restrict the plugins/roles that can transmit data - something like:
plugin "A" channel "A" can be written by moderators, read by moderators;
plugin "A" channel "B" channel can be written by moderators, read by participants;
Proposed API:
// dispatch a message that can be read by any user
const [data, dispatch] = pluginApi.useDataChannel("star-rating");
useEffect( () => {
dispatch(
{
"type": "new-star",
"userId": "abc123"
}
);
}, []);
// dispatch a message that can be read by presenter or a specific user
const [data, dispatch] = pluginApi.useDataChannel("another-channel");
useEffect( () => {
dispatch(
{
"type": "test",
"content": "bla"
},
[{role: Roles.PRESENTER}, {userId:"123"} ]
);
}, []);
We want to create a way that a plugin can send data to other participants of same meeting.
The data model on server side should be something like:
Things to discuss:
Proposed API: