this post was submitted on 14 Dec 2023
6 points (100.0% liked)

Matrix

3288 readers
2 users here now

An open network for secure, decentralized communication

founded 4 years ago
MODERATORS
 

What is the difference between a room id of !example391:server.com and #example:server.com for a user at server2.com? Is there also a way to assign an internal address starting with a #? Everytime I try to make it internal only, it becomes external at the same time. I also noticed that Element allows me to assign custom room addresses from different servers, how would that be possible?

top 1 comments
sorted by: hot top controversial new old
[–] ace@lemmy.ananace.dev 6 points 11 months ago* (last edited 11 months ago)

The # is a room alias, only ! denotes a room ID.

Room IDs are the main identifier for a room, while one or more aliases can also be assigned to it for discovery purposes.
Any server can assign aliases - and therefore also serve the room discovery, but only if the room admins allow them.

Using the Matrix HQ room as an example; #matrix:matrix.org is the canonical alias for the room, mapping to !OGEhHVWSdvArJzumhm:matrix.org.
If you want to join the room, you either need to know the ID and some information on which servers are currently part of the room, or you need to know a room alias - which can be used to query the server owning it in order to receive the information on the room and how to join it.

For example; (%23 is the HTTP entity for #, since # would otherwise be handled as a client part of the URL)

$ curl -q 'https://matrix.org/_matrix/client/v3/directory/room/%23matrix:matrix.org' | jq '.room_id, .servers[0,1]'
"!OGEhHVWSdvArJzumhm:matrix.org"
"matrix.org"
"artemislena.eu"