Add support for modules
This commit is contained in:
parent
74adbfc1ec
commit
228c737f56
35 changed files with 6165 additions and 0 deletions
41
content/client-server-api/modules/typing_notifications.md
Normal file
41
content/client-server-api/modules/typing_notifications.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
type: module
|
||||
weight: 30
|
||||
---
|
||||
|
||||
### Typing Notifications
|
||||
|
||||
Users may wish to be informed when another user is typing in a room.
|
||||
This can be achieved using typing notifications. These are ephemeral
|
||||
events scoped to a `room_id`. This means they do not form part of the
|
||||
[Event Graph](index.html#event-graphs) but still have a `room_id` key.
|
||||
|
||||
#### Events
|
||||
|
||||
{{m\_typing\_event}}
|
||||
|
||||
#### Client behaviour
|
||||
|
||||
When a client receives an `m.typing` event, it MUST use the user ID list
|
||||
to **REPLACE** its knowledge of every user who is currently typing. The
|
||||
reason for this is that the server *does not remember* users who are not
|
||||
currently typing as that list gets big quickly. The client should mark
|
||||
as not typing any user ID who is not in that list.
|
||||
|
||||
It is recommended that clients store a `boolean` indicating whether the
|
||||
user is typing or not. Whilst this value is `true` a timer should fire
|
||||
periodically every N seconds to send a typing HTTP request. The value of
|
||||
N is recommended to be no more than 20-30 seconds. This request should
|
||||
be re-sent by the client to continue informing the server the user is
|
||||
still typing. As subsequent requests will replace older requests, a
|
||||
safety margin of 5 seconds before the expected timeout runs out is
|
||||
recommended. When the user stops typing, the state change of the
|
||||
`boolean` to `false` should trigger another HTTP request to inform the
|
||||
server that the user has stopped typing.
|
||||
|
||||
{{typing\_cs\_http\_api}}
|
||||
|
||||
#### Security considerations
|
||||
|
||||
Clients may not wish to inform everyone in a room that they are typing
|
||||
and instead only specific users in the room.
|
Loading…
Add table
Add a link
Reference in a new issue