Concepts

Feature List

Participant

The Meta-Lobby implements various features pertaining to the participant user:

  • authentication and authorization

  • presence

  • chat

  • activity

Community

The Meta-Lobby also implements community features enhancing the user experience:

  • buddy list (list of friends to ease chatting with them)

  • ignore list (list of other users for which no chat message or no invitation will be received)

  • activity (what a user is doing at a given moment)

  • real-time Chat Rooms creation

  • list of users currently online

  • commands (statistics about the Meta-Lobby, report participant…)

Chat Rooms

The Chat Room model of the Meta-Lobby allows the following features:

  • private Chat Rooms

  • persistent chat messages and chat history

  • invitation

  • profanity filter

Participant

Participant

The Player is a set of data pertaining to a given participant of a given Chat Room. This information is kept by the Meta-Lobby (and available on demand or when authenticating). It’s also an entity that stays in the Meta-Lobby for as long as a connection is up.

Authentication

Before a participant is authenticated, it isn’t possible to do anything with the server. A given participant is authenticated (for the moment) with her name and password combination. Upon authentication the Client receives a Session identifier, which it should keep locally. This Session identifier has to be sent back for the next authentication to speed up the process.

Session

A session is a persistent entity in the Meta-Lobby representing the participant, it is designed by a session identifier.

Presence

The Meta-Lobby maintains a presence status for every participant. The status is present for connected and active participants. It is possible for a Participant to subscribe for presence status change stream for some other participants.

Community

Buddy list

Each Participant has a Buddy list, which contains the friends of this user. The server allows the Participant to manage this buddy list (add, remove or list buddies). Buddies are used when creating Chat Rooms by invitation. Friends are not reciprocal, you can add anyone to your Buddy List without her consent, and that doesn’t make you one of her buddy.

Ignored list

Like for buddies, each Participant has an Ignore list. This list contains users that are ignored by a given Participant. In this case, this user won’t be able to see chat messages from her ignored participants.

Invitation

It is also possible for a Participant to invite some of her buddies to a Chat Room.

The system will keep the pending invitation to the buddies that are not connected. The Chat Room will be available as soon as the creator create it and only the creator could invite any buddies.

Commands

The chat system allows for chat commands, triggering a special action from the server. The Participant just has to type the command like a regular chat message:

  • /help to display the list of commands

  • /statistics to have statistics about the current Chat Room

  • /report to report a user for bad behaviour

Chat Room

Local id VS DoW id

In a Chat Room, the local id will be the order of arrival inside. The creator will be with the local id 1.

Configuration

The room configuration is used to set the initial participants, and some other various aspects of a Chat Room prior to create it, like its name and topic.

Profanity Filter

The Meta-Lobby will filter incoming messages, obfuscating offensive language to preserve the innocence of participants. A message will be sent by the Administrator to warn the participant of her bad behaviour.

A participant can also send a Commands to report an other participant for any suitable reason.