Open ara4n opened 7 years ago
Option 2 seems better than Option 1, as it would avoid disclosing the list of all users of the server, to each user of the server.
Anyway, would love to see this feature to be able to broadcast planned downtimes to users :)
Regarding specifically planned downtimes - I'd rather recommend using a separate room for that (with force-joining but otherwise a usual room). Then people who don't care so much would be able to unsubscribe from the room.
As for completely out-of-band WALL-style cases - I'd say that to_device
is a waste for that. Probably a special kind of a room would be good, one that doesn't share its m.room.member
and probably some other types of events (addressing @Gwend4l's concern above and also maaassively reducing /sync
payloads for such room). 2-way discussion is a completely separate thing from WALL and should be established separately (a @support:
or @admin:
user account immediately comes to mind). Very few people actually have something to say to admins, even fewer have something useful.
I'd say go with a special room. The room can be "fake" i.e. not actually backed by a DAG but supporting all the necessary client-side endpoints. This also opens the way to all kinds of special semantics, including hiding the user list and directing any talkback to the server admin (only), if so desired.
Regarding specifically planned downtimes - I'd rather recommend using a separate room for that (with force-joining but otherwise a usual room). Then people who don't care so much would be able to unsubscribe from the room.
@KitsuneRal Would this result in a public list with all members? At least for my usecase I'd like to avoid this :)
@vsund - you're right, and this probably makes a case for a special kind of room, one tailored for broadcasting from a small group of authors ("publishers" or "administrators") to many readers ("subscribers" or "audience"). If I don't mistake, this format is quite popular in Telegram, by the way. Such room would notably hide users from each other, while still providing proof of identity of those who publish in it.
As an afterthought - "official accounts" for brands could also be established using this kind of rooms, with potentially millions of subscribers reading the messages without having to cope with room states of tremendous size at least on the client side.
Honestly I'd prefer to keep it short and simple and have a broadcast room, and then just have a discussion room for those that want to discuss anything. The vast majority will ignore your message anyway, and even less will want to reply. Those that do can use a dedicated announcement-discussion channel.
This is vastly easier now we have System Alert rooms?
The proposal is here, and not yet merged or approved: https://github.com/matrix-org/matrix-doc/issues/1452
Is this fixed by system alerts now?
System alerts are not in the spec to the capability this requires.
What is the status of this?
Hi! Any updates? :)
+1
I think there's more clean solution to that... How about RSS?
Server can expose GET /_matrix/client/v3/feed
API, which responses with:
{
"chat": "<discussion-room-id>",
"url": "https://<server-name>/path/to/feed.xml",
"creator": "<admin-id>",
"name": "<channel-name>"
}
(All parameters are optional)
Unfortunately, full-pledge channels are not implemented yet in Matrix, so there's easier-to-implement solution which:
+ Respects privacy (RSS can't track whatever post you're reading)
+ Easily cachable (both the API response and RSS feed)
- Don't have subscriber/view count
- There's no built-in tools to maintain RSS feed
I may be stupid, but does'nt that require users to follow the RSS-feed manually instead of admins being able to "push out" the notification? @Saiv46
Sorry for absence, here I answer the question
I may be stupid, but does'nt that require users to follow the RSS-feed manually instead of admins being able to "push out" the notification?
@wioxjk I think Matrix protocol should handle messages only, while channels (basically RSS-feeds) should be implemented by Matrix clients as something distinguishable (other we get a mess just like in Telegram/Whatsapp/etc).
We have some bugs which touch on this: matrix-org/matrix-spec#67 and possibly https://github.com/matrix-org/synapse/issues/1286.
Filing as a spec bug as we should probably recommend the best way to do this. Options are: