reveal.js

How to use Revealjs with Seminar Plugin and invite people to the seminar


I am currently working on a presentation app for Notion and started to implement the Seminar plugin. I made the server run without any problem and opened the "room" to the presentation too. But what I dont understand, how I can add a participant.

Can somone help me out with that? The documentation is in my opinion also not the best...

I start the server script as a subprocess with spawn('node', ['seminar/server.js'], { stdio: 'inherit' }); and then join / create the room as host with RevealSeminar.open_or_join_room(seminarPassword, 'Host');.

The logs i have in the console tells me, that the server is starting properly but also that the creation / joining of the room is a success. But there is no documentation on how the url needs to be for another user to access the seminar. I understand that there is a function like enterRoom(), but I could just call it from the server.

There is no specific codesnippet provided, because it is a fundemental question about how the seminar works, so I can understand and use it properly. My code can be found anyway under https://github.com/SchmidAlex/notion-presentation-generator/tree/main if needed

Here is a small example on how I am setting up reveal and creating the Room (note that the server is already running and the hash is generated from the server web-page). Do I need to setup a website with reveal on the webserver to join over the function join_room( username ) which is just available on the RevealSeminar Plugin?

I cant imagine that because if so, why did the creator of reveal not include such site like "/login" which already provides it.

Here is a simple example of how I create the room and initialize Reveal with the seminarplugin:

const plugins = [
    RevealHighlight,
    RevealSeminar,
]

Reveal.initialize({
    plugins: plugins,
    controls: true,
    seminar: {
        server: seminarServer, // https://[ip]:[port]
        room: seminarRoom, // Roomname
        hash: seminarHash, // Hash generated from passwort from the server
        autoJoin: true
    }
});
Reveal.on('ready', () => {
    RevealSeminar.open_or_join_room(seminarPassword /*Cleartext password*/, 'Host' /*Username*/);
});

Solution

  • Appearently the seminar plugin is meant to be running on the same server as the presentator is presenting the presentation. So the content, reveal config (from seminar plugin) needs to be the exact same with one difference. If connected as host, the function RevealSeminar.open_or_join_room(seminarPassword, 'Host'); needs to be used. The rest needs to call the function RevealSeminar.join_room('User'); just with the same configuration.

    Also in the electron app there is no window.location.hostname which the plugin uses to define the 'venue' of the room (whatever this is). So for that the 'url' needed to be defined in the configuration.