Expand my Community achievements bar.

Guidelines for the Responsible Use of Generative AI in the Experience Cloud Community.

Rooms vs CollectionNodes for whiteboard privacy

Avatar

Level 2

Goal: Looking to allow for unlimited number of one-to-one whiteboard collaboration sessions.

Option A) I am currently able to partition each user pair by establishing a separate collectionNode via SharedWBModel and assiging each user of the two users to that model (collectionNode).

Option B) I am also able to create a new room for each user pair at runtime via template allowing for the two users to enter the room after it is created

Questions:

1) Is there another option?

2) Is one technique suggested over the other for technical reasons (load, scaling, etc)?

3) Is one technique suggested over the other for pricing reasons (does room creation cost more than collectionNode creation)?

4) For the sake of security, i can create neither rooms nor collectionNodes from the client without compromising my developer's owner account credentials. In order to circumvent the issue, i am able to create a new room from a template via server libabries (java, php), however, i don't see the ability to create a collectionNode from the server. Can i create collectionNodes from the server?

5) Is there a way to promote a participant to owner temporarily in order to create a collectionNode from the client without compromising security? In other words, is using the server my only option?

Looking forward and thanks.

2 Replies

Avatar

Employee

2) A single room has a physical limit on how many users can be connected (number of socket connections, memory usage, etc.). Also a single room will be "confined" on a single server. Multiple rooms will be spread among all available servers. So, while the total load of multiple rooms is probably higher than the load of a single room, multiple rooms scale better.

3) multiple rooms may have a little overhead on the number of messages exchanged, because you are starting a new room every time, but otherwise the cost should be comparable.

4) with the latest SDK we have added server-side collection and node management, so you should be able to create and configure collections and nodes (and also publish and fetch items)

5) you can change a user role using "setUserRole" but you need to have permissions to do that so either one of your clients is the room owner or you have to call "setUserRole" from the server side (that kind of defeat the purpose ). The other way to have a user start as "room owner" without using your account credential is to use server side (external) authentication and generate a user token with role=100.

Avatar

Former Community Member

Yeah, absolutely seconding what Raff is saying - multiple rooms, spawned

from a template via server integration APIs, is the right way to go here.

You'll likely find this the lowest-touch way to go as well (since, if you

use large rooms, then you need your server to inject nodes, etc, which is

more work than just creating a room with everything pre-supplied).

nigel