Avatar

Correct answer by
Level 10

Hi Nicolas,

I think there are 2 aspects to what you're planning :

1) A lobby system with buddy-style presence for "rendez-vous" to the private

conversations

2) Private rooms that are used for the actual conversations

For 1), you'll want to use UserManager.anonymousPresence - this means that

not every person logged into the lobby will be able to see each other;

rather, only people who have broadcast their presence to the room on purpose

(so that everyone can see them) or with pre-defined relationships (such as

from a buddy list) will be seen. Anonymous presence greatly increases the

scale of our rooms into the thousands of connections. Secondly, you can use

UserManager.myBuddyList for each user who is connecting - assign a list of

userIDs that the current user should notify when he arrives.

For 2), when a private conversation needs to happen, have the initiator

request a new room from your server. Your server can validate the request,

and use the server integration libraries to create a new LCCS room, and

return the URL to the initiator. From there, the initiator can privately

message the URL to the person they're inviting (within some node in the

lobby room through which messages with recipientIDs can be used).

I think it's fine to have multiple sessions open at once from the client

(for example, the client would likely stay connected to the lobby the whole

time so that presence is reflected). So I definitely recommend the first

option you presented, with the addition of a general lobby room for generic

presence and rendez-vous. In this way you get the benefits of a centralized

presence system with the scale of private chats happening within their own

rooms.

This is definitely an area we on the product team are looking to document

further - we've rather quietly added the UserManager functionality above,

and have been planning out sample lobby systems to share. We're heads-down

in a release that's coming out very soon , but once that's done, we'll

start to get some more samples together on this topic.

hope that helps - let us know if we can answer any further questions.

thanks

nigel

View solution in original post