Projects and namespaces
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:
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