Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
synapse
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Maunium
synapse
Commits
ca025c2b
Commit
ca025c2b
authored
10 years ago
by
Kegan Dougal
Browse files
Options
Downloads
Patches
Plain Diff
Rooms: More subsections, more bullet points, more detail.
parent
c3a774e4
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
docs/specification.rst
+88
-9
88 additions, 9 deletions
docs/specification.rst
with
88 additions
and
9 deletions
docs/specification.rst
+
88
−
9
View file @
ca025c2b
...
@@ -216,22 +216,101 @@ In contrast, these are invalid requests::
...
@@ -216,22 +216,101 @@ In contrast, these are invalid requests::
Receiving live updates on a client
Receiving live updates on a client
----------------------------------
----------------------------------
- C-S longpoll event stream
Clients can receive new events by long-polling the home server. This will hold open the
- Concept of start/end tokens.
HTTP connection for a short period of time waiting for new events, returning early if an
- Mention /initialSync to get token.
event occurs. This is called the "Event Stream". All events which the client is authorised
to view will appear in the event stream. When the stream is closed, an ``end`` token is
returned. This token can be used in the next request to continue where the client left off.
When the client first logs in, they will need to initially synchronise with their home
server. This is achieved via the ``/initialSync`` API. This API also returns an ``end``
token which can be used with the event stream.
Rooms
Rooms
=====
=====
- How are they created? PDU anchor point: "root of the tree".
Creation
--------
To create a room, a client has to use the ``/createRoom`` API. There are various options
which can be set when creating a room:
``visibility``
Type:
String
Optional:
Yes
Value:
Either ``public`` or ``private``.
Description:
A ``public`` visibility indicates that the room will be shown in the public room list. A
``private`` visibility will hide the room from the public room list. Rooms default to
``public`` visibility if this key is not included.
``room_alias_name``
Type:
String
Optional:
Yes
Value:
The room alias localpart.
Description:
If this is included, a room alias will be created and mapped to the newly created room.
The alias will belong on the same home server which created the room, e.g.
``!qadnasoi:domain.com >>> #room_alias_name:domain.com``
Example::
{
"visibility": "public",
"room_alias_name": "the pub"
}
- TODO: This creates a room creation event which serves as the root of the PDU graph for this room.
Modifying aliases
-----------------
- Adding / removing aliases.
- Adding / removing aliases.
- Invite/join dance
- State and non-state data (+extensibility)
TODO : Room permissions / config / power levels.
Permissions
-----------
- TODO : Room permissions / config / power levels. What they are. How do they work. Examples.
Messages
Inviting users
========
--------------
- API to hit (``$roomid/invite``) with ``user_id`` key. Needs FQ user ID, explain why.
- Outline invite join dance
Joining rooms
-------------
- API to hit (``/join/$alias or id``). Explain how alias joining works (auto-resolving).
- Outline invite join dance
Leaving rooms
-------------
- API to hit (``$roomid/leave``).
- Is there a dance?
Room events
-----------
- Split into state and non-state data
- Explain what they are, semantics, give examples of clobbering / not, use cases (msgs vs room names).
Not too much detail on the actual event contents.
- API to hit.
- Extensibility provided by the API for custom events. Examples.
- How this hooks into ``initialSync``.
- See the "Room Events" section for actual spec on each type.
Syncing a room
--------------
- Single room initial sync. API to hit. Why it might be used (lazy loading)
Getting grouped state events
----------------------------
- ``/members`` and ``/messages`` and the events they return.
- ``/state`` and it returns ALL THE THINGS.
Room Events
===========
This specification outlines several standard event types, all of which are
This specification outlines several standard event types, all of which are
prefixed with ``m.``
prefixed with ``m.``
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment