Developer Documentation

Projects and namespaces

TL;DR

All clients that need to talk to each other have to join the ODIN room with the same name in the same namespace.

Hosting type

Managed

With ODIN managed cloud hosting, for each subscription, you have an individual project with an infinite number of access keys ( see Understanding Access Keys ). Each project then represents its own room namespace where people can talk to each other.

On-Premise

When using an ODIN on-premise server, in combination with an ODIN gateway for easy scalability, you can configure everything the way you need it. You can assign namespaces on either a customer level or for each individual access key.

Organizing your projects

As an active subscriber you can manage your projects here:

Go to ODIN Dashboard

There you can manage your keys for all the cloud hosted projects you currently have. Keys for on-premise projects you can manage in your own configuration files.

Separating rooms by project

Each project has his own namespace. If in both projects there is a room named “lobby”, users from one project will not be able to talk to users from the other project, even if both users joined a room named “lobby”.

graph TD
    subgraph ODIN Clients
        subgraph Project 1
            C1[Client 1]
        end
        subgraph Project 2
            C2[Client 2]
        end
    end

    C1 -->|Yes| R1
    C2 -->|Yes| R2
    C2 -.->|No| R1
    
    subgraph ODIN Server
        subgraph Project 1
            R1["Room #quot;lobby#quot;"]
        end    
        subgraph Project 2
            R2["Room #quot;lobby#quot;"]
        end
    end
    
    R1 -.-|cannot talk to each other| R2
 

Separating rooms within one project

You can also keep things simple and separate users by choosing special room IDs in the same namespace, e.g. “lobby_server1” and “lobby_server2”. But depending on where your room tokens are generated (server-side or client-side) or if clients are able to decide themselves, which room ID to use for joining, you will have to make compromises with security.

graph TD
    subgraph ODIN Clients
        subgraph Project 1
            C1[Client connected to server 1]
            C2[Client connected to server 2]
        end
    end
    
    subgraph ODIN Server
        subgraph Project 1
            R1["Room #quot;lobby_server1#quot;"]
            R2["Room #quot;lobby_server2#quot;"]
        end
    end
    
    C1 -->|Yes| R1
    C2 -->|Yes| R2
    C1 -->|should not| R2

    R1-.-|cannot talk to each other| R2