CommandRegistry - element-ts/lithium GitHub Wiki

The command registry is how all messages are managed internally. When a command is invoked, a message is created by the socket's command registry. It generate a new non-colliding id for the message and adds the message and the message's completion handler to the internal map.

When you setup either a LiSocket or LiServer you provide generic parameters that conform to LiCommandRegistryStructure. There are three types of possible command registries.

Local Command Registry (LC)

The local command registry is referred to as LC in parameters. These are the commands that the socket will implement.

Remote Command Registry (RC)

The remote command registry is referred to as RC in parameters. These are the commands that the socket will invoke.

Sibling Command Registry (SC)

The sibling command registry is referred to as SC in parameters. These are the commands that the socket can invoke on its siblings.

Creating a Registry

To create a registry, just make an interface that extends LiCommandRegistryStructure like below:

export interface MyServerCommands extends LiCommandRegistryStructure {
    changeFavoriteNumber: {
    	param: number;
        return: void;
    };
    getFavoriteColor: {
        param: void;
        return: number;
    };
}